UNPKG

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