1 | import { AsyncMapper, _passthroughPredicate } from '@naturalcycles/js-lib'
|
2 | import { ReadableTyped, transformLogProgress, transformMap, writableVoid } from '../index'
|
3 | import { _pipeline } from './pipeline/pipeline'
|
4 | import { StreamForEachOptions } from './stream.model'
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | export async function streamForEach<IN>(
|
10 | streams: ReadableTyped<IN> | (NodeJS.ReadableStream | NodeJS.WritableStream)[],
|
11 | mapper: AsyncMapper<IN, void>,
|
12 | opt?: StreamForEachOptions<IN>,
|
13 | ): Promise<void> {
|
14 | await _pipeline([
|
15 | ...(Array.isArray(streams) ? streams : [streams]),
|
16 | transformMap(mapper, {
|
17 | ...opt,
|
18 | predicate: _passthroughPredicate,
|
19 | }),
|
20 | transformLogProgress(opt),
|
21 | writableVoid(),
|
22 | ])
|
23 | }
|