@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
22 lines (18 loc) • 717 B
text/typescript
import { Mapper } from '@naturalcycles/js-lib'
import { _pipeline } from './pipeline/pipeline'
import { ReadableTyped } from './stream.model'
import { transformMap, TransformMapOptions } from './transform/transformMap'
import { writablePushToArray } from './writable/writablePushToArray'
/**
* Map stream items to array of results (in memory).
* Warning! All results are stored in memory (no backpressure).
*/
export async function streamMapToArray<IN, OUT = IN>(
stream: ReadableTyped<IN>,
mapper: Mapper<IN, OUT> = item => item as any,
opt?: TransformMapOptions,
): Promise<OUT[]> {
const res: OUT[] = []
await _pipeline([stream, transformMap(mapper, opt), writablePushToArray(res)])
return res
}