UNPKG

2.13 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/asyncify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAU,IAAc;IAC9C,OAAO,UAAU,GAAG,IAAW;QAC7B,MAAM,IAAI,GAAG,IAAI,SAAS,EAAW,CAAC;QAEtC,MAAM,OAAO,GAAG,UAAU,GAAG,SAAgB;YAC3C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC,CAAC;QAEF,IAAI;YACF,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;SAC/B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;QAED,MAAM,OAAO,GAAG,KAAK,SAAS,CAAC;YAC7B,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAI;gBACjD,MAAM,IAAI,CAAC,KAAK,CAAC;aAClB;QACH,CAAC,CAAC;QAEF,OAAO,OAAO,EAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC","file":"asyncify.js","sourcesContent":["import { AsyncIterableX } from './asynciterablex';\nimport { AsyncSink } from './asyncsink';\nimport { memoize } from './operators/memoize';\n\n/**\n * Converts the callback function into wrapped function which returns an async-iterable.\n *\n * @export\n * @template TSource The type of the value returned from the callback.\n * @param {Function} func The callback function to wrap as an async-iterable.\n * @returns {(...args: any[]) => AsyncIterableX<TSource>} A function when invoked, returns an async-iterable from the callback.\n */\nexport function asyncify<TSource>(func: Function): (...args: any[]) => AsyncIterableX<TSource> {\n return function (...args: any[]) {\n const sink = new AsyncSink<TSource>();\n\n const handler = function (...innerArgs: any[]) {\n sink.write(innerArgs.length === 1 ? innerArgs[0] : innerArgs);\n sink.end();\n };\n\n try {\n func(...args.concat(handler));\n } catch (e) {\n sink.error(e);\n sink.end();\n }\n\n const yielder = async function* () {\n for (let next; !(next = await sink.next()).done; ) {\n yield next.value;\n }\n };\n\n return memoize<TSource>()(yielder());\n };\n}\n"]}
\No newline at end of file