UNPKG

@opengis/fastify-table

Version:

core-plugins

33 lines (32 loc) 1.09 kB
import { once } from "node:events"; import { rm } from "node:fs/promises"; import { createInterface } from "node:readline"; import { createReadStream, createWriteStream } from "node:fs"; export default async function jsonlToJsonFile(inputPath) { const outputPath = inputPath.replace(/.jsonl$/g, ".json"); const input = createReadStream(inputPath); const output = createWriteStream(outputPath); const stream = createInterface({ input, crlfDelay: Infinity }); output.write("[\n"); let first = true; stream.on("line", (line) => { if (!line.trim()) return; if (!first) output.write(",\n"); output.write(JSON.stringify(JSON.parse(line))); first = false; }); // await stream to close /until convert finished await once(stream, "close"); output.write("\n]"); output.end(); // wait for write stream to finish flushing await once(output, "finish"); // rm temporary json line await rm(inputPath, { recursive: true, force: true, }); return outputPath; }