faster-csv
Version:
Minimal dependency, fast CSV parser and formatter using modern Node.js APIs.
15 lines (14 loc) • 565 B
JavaScript
import { createWriteStream } from "node:fs";
export async function formatCSV(outputPath, rows, { headers = true, separator = "," } = {}) {
const stream = createWriteStream(outputPath, { encoding: "utf-8" });
if (headers && rows.length > 0 && !Array.isArray(rows[0])) {
stream.write(Object.keys(rows[0]).join(separator) + "\n");
}
for (const row of rows) {
const line = Array.isArray(row)
? row.join(separator)
: Object.values(row).join(separator);
stream.write(line + "\n");
}
stream.end();
}