UNPKG

@naturalcycles/js-lib

Version:

Standard library for universal (browser + Node.js) javascript

40 lines (39 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports._range = _range; exports._rangeIterable = _rangeIterable; exports._rangeAsyncIterable = _rangeAsyncIterable; const asyncIterable2_1 = require("../iter/asyncIterable2"); const iterable2_1 = require("../iter/iterable2"); function _range(fromIncl, toExcl, step = 1) { if (toExcl === undefined) { return Array.from(new Array(fromIncl), (_, i) => i); } return Array.from({ length: Math.ceil((toExcl - fromIncl) / step) }, (_, i) => i * step + fromIncl); } function _rangeIterable(fromIncl, toExcl, step = 1) { if (toExcl === undefined) { toExcl = fromIncl; fromIncl = 0; } return iterable2_1.Iterable2.of({ *[Symbol.iterator]() { for (let i = fromIncl; i < toExcl; i += step) { yield i; } }, }); } function _rangeAsyncIterable(fromIncl, toExcl, step = 1) { if (toExcl === undefined) { toExcl = fromIncl; fromIncl = 0; } return asyncIterable2_1.AsyncIterable2.of({ async *[Symbol.asyncIterator]() { for (let i = fromIncl; i < toExcl; i += step) { yield i; } }, }); }