1 | import { AsyncMapper } from '@naturalcycles/js-lib'
|
2 | import { _pipeline } from './pipeline/pipeline'
|
3 | import { ReadableTyped } from './stream.model'
|
4 | import { transformMap, TransformMapOptions } from './transform/transformMap'
|
5 | import { writablePushToArray } from './writable/writablePushToArray'
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | export 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 | }
|