@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
29 lines (28 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ndjsonStreamForEach = void 0;
const fs = require("fs");
const zlib_1 = require("zlib");
const js_lib_1 = require("@naturalcycles/js-lib");
const __1 = require("../..");
/**
* Convenience function to `forEach` through an ndjson file.
*/
async function ndjsonStreamForEach(mapper, opt) {
(0, __1.requireFileToExist)(opt.inputFilePath);
const transformUnzip = opt.inputFilePath.endsWith('.gz') ? [(0, zlib_1.createUnzip)()] : [];
await (0, __1._pipeline)([
fs.createReadStream(opt.inputFilePath),
...transformUnzip,
(0, __1.transformSplit)(),
(0, __1.transformJsonParse)(),
(0, __1.transformMap)(mapper, {
errorMode: js_lib_1.ErrorMode.THROW_AGGREGATED,
...opt,
predicate: () => true, // to log progress properly
}),
(0, __1.transformLogProgress)(opt),
(0, __1.writableVoid)(),
]);
}
exports.ndjsonStreamForEach = ndjsonStreamForEach;