jsmodern
Version:
An extension to existing JavaScript, influenced by other great languages such as Rust, Dart, Java, Golang, etc.
21 lines • 846 B
JavaScript
import { checkInt } from './check-int';
export const range = {
isStatic: true,
label: 'range',
fn: function numberRange(start, end, step) {
const startInt = checkInt(start, 'start');
const isEndNull = null == end;
const isStepNull = null == step;
if (isEndNull && isStepNull) {
if (startInt < 0)
throw new TypeError(`'start' cannot be less than 0`);
return Array.from(Array(startInt), (_, i) => i);
}
const endInt = checkInt(end, 'end');
if (isStepNull)
return Array.from(Array(endInt - startInt), (_, i) => startInt + i);
const stepInt = checkInt(step, 'step');
return Array.from(Array(Math.ceil((endInt - startInt) / stepInt)), (_, i) => startInt + (i * stepInt));
},
};
//# sourceMappingURL=range.js.map