UNPKG

8.82 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/asynciterablex.ts"],"names":[],"mappings":"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","file":"asynciterablex.js","sourcesContent":["import { as as asAsyncIterable } from './as';\nimport { _initialize as _initializeFrom } from './from';\nimport { OperatorAsyncFunction, UnaryFunction } from '../interfaces';\nimport { Observable } from '../observer';\nimport { isReadableNodeStream, isWritableNodeStream } from '../util/isiterable';\n\nclass WithAbortAsyncIterable<TSource> implements AsyncIterable<TSource> {\n private _source: AsyncIterable<TSource>;\n private _signal: AbortSignal;\n\n constructor(source: AsyncIterable<TSource>, signal: AbortSignal) {\n this._source = source;\n this._signal = signal;\n }\n\n [Symbol.asyncIterator](): AsyncIterator<TSource> {\n // @ts-ignore\n return this._source[Symbol.asyncIterator](this._signal);\n }\n}\n\n/**\n * This class serves as the base for all operations which support [Symbol.asyncIterator].\n */\nexport abstract class AsyncIterableX<T> implements AsyncIterable<T> {\n abstract [Symbol.asyncIterator](signal?: AbortSignal): AsyncIterator<T>;\n\n async forEach(\n projection: (value: T, index: number, signal?: AbortSignal) => void | Promise<void>,\n thisArg?: any,\n signal?: AbortSignal\n ): Promise<void> {\n const source = signal ? new WithAbortAsyncIterable(this, signal) : this;\n\n let i = 0;\n for await (const item of source) {\n await projection.call(thisArg, item, i++, signal);\n }\n }\n\n /** @nocollapse */\n pipe<R>(...operations: UnaryFunction<AsyncIterable<T>, R>[]): R;\n pipe<R>(...operations: OperatorAsyncFunction<T, R>[]): AsyncIterableX<R>;\n pipe<R extends NodeJS.WritableStream>(writable: R, options?: { end?: boolean }): R;\n pipe<R>(...args: any[]) {\n let i = -1;\n const n = args.length;\n let acc: any = this;\n while (++i < n) {\n acc = args[i](asAsyncIterable(acc));\n }\n return acc;\n }\n}\n\n(<any>AsyncIterableX.prototype)[Symbol.toStringTag] = 'AsyncIterableX';\n\nObject.defineProperty(AsyncIterableX, Symbol.hasInstance, {\n writable: true,\n configurable: true,\n value(inst: any) {\n return !!(inst && inst[Symbol.toStringTag] === 'AsyncIterableX');\n },\n});\n\n_initializeFrom(AsyncIterableX);\n\nexport type AsyncIterableInput<TSource> =\n | AsyncIterable<TSource>\n | AsyncIterator<TSource>\n | Iterable<TSource | PromiseLike<TSource>>\n | ArrayLike<TSource>\n | PromiseLike<TSource>\n | Observable<TSource>;\n\ntype WritableOrOperatorAsyncFunction<T, R> =\n | NodeJS.WritableStream\n | NodeJS.ReadWriteStream\n | OperatorAsyncFunction<T, R>;\n\ndeclare module '../asynciterable/asynciterablex' {\n interface AsyncIterableX<T> {\n pipe(): AsyncIterableX<T>;\n pipe<A>(op1: OperatorAsyncFunction<T, A>): AsyncIterableX<A>;\n pipe<A, B>(\n op1: OperatorAsyncFunction<T, A>,\n op2: OperatorAsyncFunction<A, B>\n ): AsyncIterableX<B>;\n pipe<A, B, C>(\n op1: OperatorAsyncFunction<T, A>,\n op2: OperatorAsyncFunction<A, B>,\n op3: OperatorAsyncFunction<B, C>\n ): AsyncIterableX<C>;\n pipe<A, B, C, D>(\n op1: OperatorAsyncFunction<T, A>,\n op2: OperatorAsyncFunction<A, B>,\n op3: OperatorAsyncFunction<B, C>,\n op4: OperatorAsyncFunction<C, D>\n ): AsyncIterableX<D>;\n pipe<A, B, C, D, E>(\n op1: OperatorAsyncFunction<T, A>,\n op2: OperatorAsyncFunction<A, B>,\n op3: OperatorAsyncFunction<B, C>,\n op4: OperatorAsyncFunction<C, D>,\n op5: OperatorAsyncFunction<D, E>\n ): AsyncIterableX<E>;\n pipe<A, B, C, D, E, F>(\n op1: OperatorAsyncFunction<T, A>,\n op2: OperatorAsyncFunction<A, B>,\n op3: OperatorAsyncFunction<B, C>,\n op4: OperatorAsyncFunction<C, D>,\n op5: OperatorAsyncFunction<D, E>,\n op6: OperatorAsyncFunction<E, F>\n ): AsyncIterableX<F>;\n pipe<A, B, C, D, E, F, G>(\n op1: OperatorAsyncFunction<T, A>,\n op2: OperatorAsyncFunction<A, B>,\n op3: OperatorAsyncFunction<B, C>,\n op4: OperatorAsyncFunction<C, D>,\n op5: OperatorAsyncFunction<D, E>,\n op6: OperatorAsyncFunction<E, F>,\n op7: OperatorAsyncFunction<F, G>\n ): AsyncIterableX<G>;\n pipe<A, B, C, D, E, F, G, H>(\n op1: OperatorAsyncFunction<T, A>,\n op2: OperatorAsyncFunction<A, B>,\n op3: OperatorAsyncFunction<B, C>,\n op4: OperatorAsyncFunction<C, D>,\n op5: OperatorAsyncFunction<D, E>,\n op6: OperatorAsyncFunction<E, F>,\n op7: OperatorAsyncFunction<F, G>,\n op8: OperatorAsyncFunction<G, H>\n ): AsyncIterableX<H>;\n pipe<A, B, C, D, E, F, G, H, I>(\n op1: OperatorAsyncFunction<T, A>,\n op2: OperatorAsyncFunction<A, B>,\n op3: OperatorAsyncFunction<B, C>,\n op4: OperatorAsyncFunction<C, D>,\n op5: OperatorAsyncFunction<D, E>,\n op6: OperatorAsyncFunction<E, F>,\n op7: OperatorAsyncFunction<F, G>,\n op8: OperatorAsyncFunction<G, H>,\n op9: OperatorAsyncFunction<H, I>\n ): AsyncIterableX<I>;\n pipe(...operations: OperatorAsyncFunction<any, any>[]): AsyncIterableX<{}>;\n pipe<A extends NodeJS.WritableStream>(op1: A, options?: { end?: boolean }): A;\n }\n}\n\ntry {\n ((isBrowser) => {\n if (isBrowser) {\n return;\n }\n\n AsyncIterableX.prototype['pipe'] = nodePipe;\n const readableOpts = (x: any, opts = x._writableState || { objectMode: true }) => opts;\n\n function nodePipe<T>(this: AsyncIterableX<T>, ...args: any[]) {\n let i = -1;\n let end: boolean;\n const n = args.length;\n let prev: any = this;\n let next: WritableOrOperatorAsyncFunction<T, any>;\n while (++i < n) {\n next = args[i];\n if (typeof next === 'function') {\n prev = next(asAsyncIterable(prev));\n } else if (isWritableNodeStream(next)) {\n ({ end = true } = args[i + 1] || {});\n // prettier-ignore\n return isReadableNodeStream(prev) ? prev.pipe(next, {end}) :\n asAsyncIterable(prev).toNodeStream(readableOpts(next)).pipe(next, {end});\n }\n }\n return prev;\n }\n })(typeof window === 'object' && typeof document === 'object' && document.nodeType === 9);\n} catch (e) {\n /* */\n}\n"]}
\No newline at end of file