UNPKG

dbmaster-cli

Version:

Tool for converting tables between Fifa Soccer Games

38 lines (37 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Csv2JsonTransform = void 0; const stream_1 = require("stream"); const interfaces_1 = require("../interfaces"); const utils_1 = require("../utils"); class Csv2JsonTransform extends stream_1.Transform { constructor(opts) { super(opts); this.opts = opts; } _transform(chunk, encoding, callback) { const cols = chunk.toString().split(/\t/); const { length } = cols; if (length === this.opts.fields.length) { const object = this.opts.fields .sort(utils_1.sortByOrder) .reduce((acc, field) => ({ ...acc, [field.name]: this.formatFn(field, cols[field.order]) }), {}); this.push(JSON.stringify(object)); } callback(); } _flush(callback) { callback(); } formatFn(field, value) { switch (field.type) { case interfaces_1.Datatype.Int: return Number(value); case interfaces_1.Datatype.Float: return Number(value.replace(',', '.')); default: return value; } } } exports.Csv2JsonTransform = Csv2JsonTransform;