UNPKG

endless-sequence

Version:

Create never-ending iterators from a limited array

41 lines 1.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function create(generate, initial = []) { const data = Array.from(initial); function* addNewPart() { for (const element of generate(data)) { data.push(element); yield element; } } function at(index) { if (index < data.length) return data[index]; Array.from(addNewPart()); return at(index); } function* iterate() { yield* data; for (;;) { yield* addNewPart(); } } return { at, iterate, [Symbol.iterator]: iterate, get __internal() { return { get data() { return Array.from(data); }, get length() { return data.length; } }; } }; } exports.create = create; exports.default = create; //# sourceMappingURL=index.js.map