csv-stringify
Version:
CSV stringifier implementing the Node.js `stream.Transform` API
35 lines (32 loc) • 824 B
JavaScript
import { stringifier } from "./api/index.js";
import { normalize_options } from "./api/normalize_options.js";
const stringify = function (records, opts = {}) {
const data = [];
const [err, options] = normalize_options(opts);
if (err !== undefined) throw err;
const state = {
stop: false,
};
// Information
const info = {
records: 0,
};
const api = stringifier(options, state, info);
for (const record of records) {
const err = api.__transform(record, function (record) {
data.push(record);
});
if (err !== undefined) throw err;
}
if (data.length === 0) {
api.bom((d) => {
data.push(d);
});
const err = api.headers((headers) => {
data.push(headers);
});
if (err !== undefined) throw err;
}
return data.join("");
};
export { stringify };