UNPKG

iter-tools-es

Version:
40 lines (33 loc) 705 B
const { iterableCurry } = require('../../internal/iterable.js'); const { __spliterate } = require('../$spliterate/spliterate.js'); function* batchSpliterator(split, { size }, source) { let i = 0; for (const value of source) { if (i === size) { yield split; i = 0; } yield value; i++; } } function __batch(source, size) { return __spliterate(source, batchSpliterator, { size }); } exports.__batch = __batch; const batch = /*#__PURE__*/iterableCurry(__batch, { validateArgs(args) { if (typeof args[1] !== 'number' || args[1] < 1) { throw new TypeError('batch size should be a number greater than zero'); } } }); exports.batch = batch;