UNPKG

1.03 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.ndjsonStreamForEach = void 0;
4const fs = require("fs");
5const zlib_1 = require("zlib");
6const js_lib_1 = require("@naturalcycles/js-lib");
7const __1 = require("../..");
8/**
9 * Convenience function to `forEach` through an ndjson file.
10 */
11async function ndjsonStreamForEach(mapper, opt) {
12 (0, __1.requireFileToExist)(opt.inputFilePath);
13 const transformUnzip = opt.inputFilePath.endsWith('.gz') ? [(0, zlib_1.createUnzip)()] : [];
14 await (0, __1._pipeline)([
15 fs.createReadStream(opt.inputFilePath),
16 ...transformUnzip,
17 (0, __1.transformSplit)(),
18 (0, __1.transformJsonParse)(),
19 (0, __1.transformMap)(mapper, {
20 errorMode: js_lib_1.ErrorMode.THROW_AGGREGATED,
21 ...opt,
22 predicate: () => true, // to log progress properly
23 }),
24 (0, __1.transformLogProgress)(opt),
25 (0, __1.writableVoid)(),
26 ]);
27}
28exports.ndjsonStreamForEach = ndjsonStreamForEach;