UNPKG

datapumps

Version:

Node.js ETL (Extract, Transform, Load) toolkit for easy data import, export or transfer between systems.

33 lines (27 loc) 821 B
(function() { var CsvWriterMixin, csv, fs; csv = require('fast-csv'); fs = require('fs'); CsvWriterMixin = function(options) { if (!(options != null ? options.path : void 0)) { throw new Error('path option is required.'); } return function(target) { target.writeRow = function(row) { return target._csv.writer.write(row); }; target._csv = options; target._csv.writer = csv.createWriteStream(); target._csv.writer.pipe(fs.createWriteStream(target._csv.path, { encoding: 'utf8' })); if (target._csv.headers != null) { target.writeRow(target._csv.headers); } return target.on('end', function() { return target._csv.writer.write(null); }); }; }; module.exports = CsvWriterMixin; }).call(this);