dbmaster-cli
Version:
Tool for converting tables between Fifa Soccer Games
38 lines (37 loc) • 1.23 kB
JavaScript
;
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;