csv-append
Version:
Append data to a big csv file.
38 lines (35 loc) • 922 B
JavaScript
import fs from 'fs';
import csvWriter from 'csv-write-stream';
import pump from 'pump';
const csvAppend = (path, appendToExisting = false) => {
const writeStream = fs.createWriteStream(path, {
flags: appendToExisting ? "a" : "w"
});
const writer = csvWriter({ sendHeaders: !appendToExisting });
writer.pipe(writeStream);
const append = (args) => {
if (Array.isArray(args)) {
for (let arg of args) {
writer.write(arg);
}
}
else {
writer.write(args);
}
return writer;
};
const end = () => {
return new Promise(resolve => {
pump(writer, writeStream, err => {
resolve();
});
writer.end();
});
};
return {
append,
end
};
};
export default csvAppend;
export { csvAppend };