@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
28 lines (27 loc) • 910 B
JavaScript
import { ErrorMode } from '@naturalcycles/js-lib/error/errorMode.js';
import { Pipeline } from '../pipeline.js';
/**
* Unzips input file automatically, if it ends with `.gz`.
* Zips output file automatically, if it ends with `.gz`.
*
* @deprecated use Pipeline directly
*/
export async function ndjsonMap(mapper, opt) {
const { inputFilePath, outputFilePath, logEveryOutput = 100_000, limitInput, limitOutput } = opt;
console.log({
inputFilePath,
outputFilePath,
});
await Pipeline.fromNDJsonFile(inputFilePath)
.limitSource(limitInput)
.logProgress({ metric: 'read', ...opt })
.map(mapper, {
errorMode: ErrorMode.SUPPRESS,
...opt,
})
.flattenIfNeeded()
// .typeCastAs<OUT>()
.limit(limitOutput)
.logProgress({ metric: 'saved', logEvery: logEveryOutput })
.toNDJsonFile(outputFilePath);
}