lazzy.ts
Version:
Fast and lightweight library for lazy operations with iterable objects.
23 lines • 624 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.range = void 0;
const rangeDefaults = {
from: 0,
to: Number.MAX_SAFE_INTEGER,
step: 1,
};
function* range(parameters) {
const { from, to, step } = Object.assign(Object.assign({}, rangeDefaults), parameters);
if (step === 0) {
return;
}
const condition = step < 0 ? ((n) => n >= to) : ((n) => n <= to);
for (let n = from; condition(n); n += step) {
if (!Number.isSafeInteger(n)) {
return;
}
yield n;
}
}
exports.range = range;
//# sourceMappingURL=range.js.map