Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
@alwatr/math
Advanced tools
Simple useful Math library written in tiny TypeScript module.
isNumber(value: unknown): boolean
console.log(typeof '123'); //=> 'string'
console.log(+[]); //=> 0
console.log(+''); //=> 0
console.log(+' '); //=> 0
console.log(typeof NaN); //=> 'number'
console.log(typeof Infinity); //=> 'number'
import { isNumber } from 'https://esm.run/@alwatr/math';
isNumber(5e3); // true
isNumber(0xff); // true
isNumber(-1.1); // true
isNumber(0); // true
isNumber(1); // true
isNumber(1.1); // true
isNumber(10); // true
isNumber(10.10); // true
isNumber(100); // true
isNumber('-1.1'); // true
isNumber('0'); // true
isNumber('012'); // true
isNumber('0xff'); // true
isNumber('1'); // true
isNumber('1.1'); // true
isNumber('10'); // true
isNumber('10.10'); // true
isNumber('100'); // true
isNumber('5e3'); // true
isNumber(parseInt('012')); // true
isNumber(parseFloat('012')); // true
import { isNumber } from 'https://esm.run/@alwatr/math';
isNumber(Infinity); // false
isNumber(NaN); // false
isNumber(null); // false
isNumber(undefined); // false
isNumber(''); // false
isNumber(' '); // false
isNumber('foo'); // false
isNumber([1]); // false
isNumber([]); // false
isNumber(function () {}); // false
isNumber({}); // false
transformToRange(x: number, options}): number
Transform a number from one range to another.
Options:
{
/**
* The input range [min, max].
*
*/
in: [number, number];
/**
* The output (request) range [min, max].
*/
out: [number, number];
/**
* If true, the output will be bounded to the output range (between min and max).
*
* In default behavior when x (input number) does not between input min~max range,
* the output value will be out of output min~max range.
*
*/
bound?: boolean;
}
transformToRange(5, {in: [0, 10], out: [0, 100]}); // => 50
Make percentage of any value
transformToRange(2000, {in: [0, 5000], out: [0, 100]}); // => 40
Calculate progress-bar with
const progressOuterWith = 400; //px
const gap = 5; //px (the visual gap between progressBar and component outer).
const currentProgress = 30; //%
const progressBarWith = transformToRange(currentProgress, {
in: [0, 100],
out: [componentPadding, progressOuterWith - componentPadding],
bound: true,
});
this.progressBar.style.width = `${progressBarWith}px`;
value
Returns a float random number between 0 and 1 (1 Not included).
console.log(random.value); // 0.7124123
random.integer(min: number, max: number): number
Generate a random integer between min and max.
console.log(random.integer(1, 10)); // somewhere between 1 and 10
random.float(min: number, max: number): number
Generate a random float between min and max.
console.log(random.float(1, 10)); // somewhere between 1 and 10
step(min: number, max: number, step: number): number
Generate a random integer between min and max with a step.
console.log(random.step(6, 10, 2)); // 6 or 8 or 10
shuffle(array: any[]): any[]
Shuffle an array.
const array = [1, 2, 3, 4, 5];
random.shuffle(array);
console.log(array); // [2, 4, 3, 1, 5]
FAQs
Simple useful Math library written in tiny TypeScript module.
We found that @alwatr/math demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.