UNPKG

736 BPlain TextView Raw
1import { AsyncMapper } from '@naturalcycles/js-lib'
2import { _pipeline } from './pipeline/pipeline'
3import { ReadableTyped } from './stream.model'
4import { transformMap, TransformMapOptions } from './transform/transformMap'
5import { writablePushToArray } from './writable/writablePushToArray'
6
7/**
8 * Map stream items to array of results (in memory).
9 * Warning! All results are stored in memory (no backpressure).
10 */
11export async function streamMapToArray<IN, OUT = IN>(
12 stream: ReadableTyped<IN>,
13 mapper: AsyncMapper<IN, OUT> = item => item as any,
14 opt?: TransformMapOptions<IN, OUT>,
15): Promise<OUT[]> {
16 const res: OUT[] = []
17
18 await _pipeline([stream, transformMap(mapper, opt), writablePushToArray(res)])
19
20 return res
21}