csv-append
Version:
Append data to a big csv file.
48 lines (42 loc) • 1.67 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('fs'), require('csv-write-stream'), require('pump')) :
typeof define === 'function' && define.amd ? define(['exports', 'fs', 'csv-write-stream', 'pump'], factory) :
(factory((global.TEMP_UMD_MODULE_NAME_CHANGE_ME = {}),global.fs,global.csvWriter,global.pump));
}(this, (function (exports,fs,csvWriter,pump) { 'use strict';
fs = fs && fs.hasOwnProperty('default') ? fs['default'] : fs;
csvWriter = csvWriter && csvWriter.hasOwnProperty('default') ? csvWriter['default'] : csvWriter;
pump = pump && pump.hasOwnProperty('default') ? pump['default'] : 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
};
};
exports.csvAppend = csvAppend;
exports.default = csvAppend;
Object.defineProperty(exports, '__esModule', { value: true });
})));