UNPKG

iter-tools-es

Version:
32 lines (26 loc) 689 B
const { iterableCurry } = require('../../internal/iterable.js'); const { CircularBuffer, ReadOnlyCircularBuffer } = require('../../internal/circular-buffer.js'); function* __window(source, size) { const buffer = new CircularBuffer(size); const bufferReadProxy = new ReadOnlyCircularBuffer(buffer); for (const value of source) { buffer.push(value); if (buffer.isFull()) { yield bufferReadProxy; } } } exports.__window = __window; const window = /*#__PURE__*/iterableCurry(__window, { validateArgs(args) { if (typeof args[1] !== 'number') { throw new Error(`${'window'} must be passed a numeric size`); } } }); exports.window = window;