UNPKG

@sugarcube/plugin-csv

Version:
50 lines (42 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _fp = require("lodash/fp"); var _fs = _interopRequireDefault(require("fs")); var _csvStringify = _interopRequireDefault(require("csv-stringify")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const plugin = (envelope, { cfg, log }) => { const filename = (0, _fp.get)("csv.queries_filename", cfg); const delimiter = (0, _fp.get)("csv.delimiter", cfg); const { queries } = envelope; log.info(`Converting ${(0, _fp.size)(queries)} queries to csv and writing to ${filename}.`); const csv = (0, _csvStringify.default)({ header: true, quotedString: true, delimiter }); csv.pipe(_fs.default.createWriteStream(filename)); // eslint-disable-next-line promise/avoid-new return new Promise((resolve, reject) => { csv.on("error", reject); csv.on("finish", () => resolve(envelope)); queries.forEach(r => csv.write(r)); csv.end(); }); }; plugin.desc = "Export queries to a CSV file."; plugin.argv = { "csv.queries_filename": { default: "out.csv", nargs: 1, desc: "The file name to write the CSV to" } }; var _default = plugin; exports.default = _default;