{"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,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\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"]}