gen.js 604 B

123456789101112131415161718192021222324
  1. 'use strict';
  2. const {Transform} = require('stream');
  3. const {next} = require('./asGen');
  4. const {sanitize} = require('../index');
  5. const gen = (...fns) => {
  6. fns = fns.filter(fn => fn);
  7. return fns.length
  8. ? new Transform({
  9. writableObjectMode: true,
  10. readableObjectMode: true,
  11. transform(chunk, encoding, callback) {
  12. (async () => {
  13. for await (let value of next(chunk, fns, 0)) {
  14. sanitize(value, this);
  15. }
  16. })().then(() => callback(null), error => callback(error));
  17. }
  18. })
  19. : null;
  20. };
  21. module.exports = gen;