UNPKG

2.28 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/defer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,kBAA4B,SAAQ,cAAuB;IAG/D,YACE,EAAsF;QAEtF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAoB;QAChD,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;YACrD,MAAM,IAAI,CAAC;SACZ;IACH,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,KAAK,CACnB,OAA2F;IAE3F,OAAO,IAAI,kBAAkB,CAAU,OAAO,CAAC,CAAC;AAClD,CAAC","file":"defer.js","sourcesContent":["import { AsyncIterableX } from './asynciterablex';\nimport { wrapWithAbort } from './operators/withabort';\nimport { throwIfAborted } from '../aborterror';\n\nclass DeferAsyncIterable<TSource> extends AsyncIterableX<TSource> {\n private _fn: (signal?: AbortSignal) => AsyncIterable<TSource> | Promise<AsyncIterable<TSource>>;\n\n constructor(\n fn: (signal?: AbortSignal) => AsyncIterable<TSource> | Promise<AsyncIterable<TSource>>\n ) {\n super();\n this._fn = fn;\n }\n\n async *[Symbol.asyncIterator](signal?: AbortSignal) {\n throwIfAborted(signal);\n const items = await this._fn(signal);\n for await (const item of wrapWithAbort(items, signal)) {\n yield item;\n }\n }\n}\n\n/**\n * Returns an async-iterable sequence that invokes the specified factory function whenever a call to [Symbol.asyncIterator] has been made.\n *\n * @export\n * @template TSource The type of the elements in the sequence returned by the factory function, and in the resulting sequence.\n * @param {((signal?: AbortSignal) => AsyncIterable<TSource> | Promise<AsyncIterable<TSource>>)} factory Async-iterable factory function to\n * invoke for each call to [Symbol.asyncIterator].\n * @returns {AsyncIterableX<TSource>} An async-iterable sequence whose observers trigger an invocation of the given async-iterable factory function.\n */\nexport function defer<TSource>(\n factory: (signal?: AbortSignal) => AsyncIterable<TSource> | Promise<AsyncIterable<TSource>>\n): AsyncIterableX<TSource> {\n return new DeferAsyncIterable<TSource>(factory);\n}\n"]}
\No newline at end of file