UNPKG

868 BJavaScriptView Raw
1import { AsyncSink } from '../asyncsink';
2import { memoize } from './memoize';
3export function asyncifyErrback(func) {
4 return function (...args) {
5 const sink = new AsyncSink();
6 const handler = function (err, ...innerArgs) {
7 if (err) {
8 sink.error(err);
9 sink.end();
10 }
11 else {
12 sink.write(innerArgs.length === 1 ? innerArgs[0] : innerArgs);
13 sink.end();
14 }
15 };
16 try {
17 func(...args.concat(handler));
18 }
19 catch (e) {
20 sink.error(e);
21 sink.end();
22 }
23 return memoize((async function* () {
24 for (let next; !(next = await sink.next()).done;) {
25 yield next.value;
26 }
27 })());
28 };
29}
30
31//# sourceMappingURL=asyncifyerrback.mjs.map