UNPKG

910 BJavaScriptView Raw
1import { AsyncSink } from './asyncsink';
2import { memoize } from './operators/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 const yielder = async function* () {
24 for (let next; !(next = await sink.next()).done;) {
25 yield next.value;
26 }
27 };
28 return memoize()(yielder());
29 };
30}
31
32//# sourceMappingURL=asyncifyerrback.mjs.map