@howto/browser-modules
Version:
A sample repo demonstrating package.json config for a browser module published to NPM
39 lines (32 loc) • 972 B
text/typescript
/**
* Returns the sum of an unbounded array of integers
*/
export function sum(...numbers: any[]): number {
const parsed = numbers.map((num) => parseInt(num, 10));
if (parsed.some((num) => isNaN(num))) {
throw new Error("Invalid numbers passed to `sum`");
}
return parsed.reduce((a, b) => a + b);
}
/**
* Returns the difference of 2 integers
*/
export function difference(...numbers: any[]): number {
if (numbers.length !== 2) {
throw new Error("Incorrect number of parameters passed to `difference`");
}
let [start, end] = numbers;
if (
start === undefined ||
start === null ||
end === undefined ||
end === null
) {
throw new Error("`start` and `end` values not properly passed");
}
start = parseInt(start, 10);
end = parseInt(end, 10);
if (isNaN(start)) throw new Error("`start` is not a valid integer");
if (isNaN(end)) throw new Error("`end` is not a valid integer");
return Math.abs(end - start);
}