atee.cjs 736 B

1234567891011121314151617181920212223
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.atee = atee;
  4. function atee(iter, length = 2) {
  5. const buffers = Array.from({ length }, () => []);
  6. return buffers.map(async function* makeIter(buffer) {
  7. while (true) {
  8. if (buffer.length === 0) {
  9. const result = await iter.next();
  10. for (const buffer of buffers) {
  11. buffer.push(result);
  12. }
  13. }
  14. else if (buffer[0].done) {
  15. return;
  16. }
  17. else {
  18. // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
  19. yield buffer.shift().value;
  20. }
  21. }
  22. });
  23. }