UNPKG

9.33 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/from.ts"],"names":[],"mappings":"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","file":"from.js","sourcesContent":["import { AsyncIterableInput, AsyncIterableX } from './asynciterablex';\nimport { identityAsync } from '../util/identity';\nimport { bindCallback } from '../util/bindcallback';\nimport {\n isIterable,\n isAsyncIterable,\n isArrayLike,\n isIterator,\n isPromise,\n isObservable\n} from '../util/isiterable';\nimport { Observable } from '../observer';\nimport { toLength } from '../util/tolength';\nimport { AsyncSink } from './asyncsink';\n\nexport let from: <TSource, TResult = TSource>(\n source: AsyncIterableInput<TSource>,\n selector?: (value: TSource, index: number) => TResult | Promise<TResult>,\n thisArg?: any\n) => AsyncIterableX<TResult>;\n\nexport let FromArrayIterable: new <TSource, TResult = TSource>(\n source: ArrayLike<TSource>,\n selector: (value: TSource, index: number) => TResult | Promise<TResult>\n) => AsyncIterableX<TResult>;\n\nexport let FromAsyncIterable: new <TSource, TResult = TSource>(\n source: Iterable<TSource | PromiseLike<TSource>> | AsyncIterable<TSource>,\n selector: (value: TSource, index: number) => TResult | Promise<TResult>\n) => AsyncIterableX<TResult>;\n\nexport let FromPromiseIterable: new <TSource, TResult = TSource>(\n source: PromiseLike<TSource>,\n selector: (value: TSource, index: number) => TResult | Promise<TResult>\n) => AsyncIterableX<TResult>;\n\nexport let FromObservableAsyncIterable: new <TSource, TResult = TSource>(\n observable: Observable<TSource>,\n selector: (value: TSource, index: number) => TResult | Promise<TResult>\n) => AsyncIterableX<TResult>;\n\nexport function _initialize(Ctor: typeof AsyncIterableX) {\n /** @nocollapse */\n from = function<TSource, TResult = TSource> (\n source: AsyncIterableInput<TSource>,\n selector: (value: TSource, index: number) => TResult | Promise<TResult> = identityAsync,\n thisArg?: any\n ): AsyncIterableX<TResult> {\n const fn = bindCallback(selector, thisArg, 2);\n if (isIterable(source) || isAsyncIterable(source)) {\n return new FromAsyncIterable<TSource, TResult>(source, fn);\n }\n if (isPromise(source)) {\n return new FromPromiseIterable<TSource, TResult>(source, fn);\n }\n if (isObservable(source)) {\n return new FromObservableAsyncIterable<TSource, TResult>(source, fn);\n }\n if (isArrayLike(source)) {\n return new FromArrayIterable<TSource, TResult>(source, fn);\n }\n if (isIterator(source)) {\n return new FromAsyncIterable<TSource, TResult>({ [Symbol.asyncIterator]: () => source }, fn);\n }\n throw new TypeError('Input type not supported');\n };\n\n // eslint-disable-next-line no-shadow\n FromArrayIterable = class FromArrayIterable<TSource, TResult = TSource> extends Ctor<TResult> {\n private _source: ArrayLike<TSource>;\n private _selector: (value: TSource, index: number) => TResult | Promise<TResult>;\n\n constructor(\n source: ArrayLike<TSource>,\n selector: (value: TSource, index: number) => TResult | Promise<TResult>\n ) {\n super();\n this._source = source;\n this._selector = selector;\n }\n\n async *[Symbol.asyncIterator]() {\n let i = 0;\n const length = toLength((<ArrayLike<TSource>> this._source).length);\n while (i < length) {\n yield await this._selector(this._source[i], i++);\n }\n }\n };\n\n // eslint-disable-next-line no-shadow\n FromAsyncIterable = class FromAsyncIterable<TSource, TResult = TSource> extends Ctor<TResult> {\n private _source: Iterable<TSource | PromiseLike<TSource>> | AsyncIterable<TSource>;\n private _selector: (value: TSource, index: number) => TResult | Promise<TResult>;\n\n constructor(\n source: Iterable<TSource | PromiseLike<TSource>> | AsyncIterable<TSource>,\n selector: (value: TSource, index: number) => TResult | Promise<TResult>\n ) {\n super();\n this._source = source;\n this._selector = selector;\n }\n\n async *[Symbol.asyncIterator]() {\n let i = 0;\n for await (const item of <AsyncIterable<TSource>> this._source) {\n yield await this._selector(item, i++);\n }\n }\n };\n\n // eslint-disable-next-line no-shadow\n FromPromiseIterable = class FromPromiseIterable<TSource, TResult = TSource> extends Ctor<\n TResult\n > {\n private _source: PromiseLike<TSource>;\n private _selector: (value: TSource, index: number) => TResult | Promise<TResult>;\n\n constructor(\n source: PromiseLike<TSource>,\n selector: (value: TSource, index: number) => TResult | Promise<TResult>\n ) {\n super();\n this._source = source;\n this._selector = selector;\n }\n\n async *[Symbol.asyncIterator]() {\n const item = await this._source;\n yield await this._selector(item, 0);\n }\n };\n\n // eslint-disable-next-line no-shadow\n FromObservableAsyncIterable = class FromObservableAsyncIterable<\n TSource,\n TResult = TSource\n > extends Ctor<TResult> {\n private _observable: Observable<TSource>;\n private _selector: (value: TSource, index: number) => TResult | Promise<TResult>;\n\n constructor(\n observable: Observable<TSource>,\n selector: (value: TSource, index: number) => TResult | Promise<TResult>\n ) {\n super();\n this._observable = observable;\n this._selector = selector;\n }\n\n async *[Symbol.asyncIterator]() {\n const sink: AsyncSink<TSource> = new AsyncSink<TSource>();\n const subscription = this._observable.subscribe({\n next(value: TSource) {\n sink.write(value);\n },\n error(err: any) {\n sink.error(err);\n },\n complete() {\n sink.end();\n }\n });\n\n let i = 0;\n try {\n for (let next; !(next = await sink.next()).done; ) {\n yield await this._selector(next.value!, i++);\n }\n } finally {\n subscription.unsubscribe();\n }\n }\n };\n}\n"]}
\No newline at end of file