tlojs
Version:
The Last One - The last npm package you'll need to install
45 lines (44 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CsvLoader = void 0;
var table_1 = require("../table");
var CsvLoader = /** @class */ (function () {
function CsvLoader() {
}
CsvLoader.prototype.load = function (data) {
var blank = new table_1.Table({ data: [] });
if (!data) {
return blank;
}
var cleansed = data.replace(/\r/, '');
var rows = cleansed.split('\n');
if (rows.length === 0) {
return blank;
}
var headers = rows[0].split(',');
var grid = [];
// Remove header row
rows.splice(0, 1);
for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {
var row = rows_1[_i];
var cells = row.split(',');
// Create object from cells
var o = {};
for (var i = 0; i < cells.length; i++) {
var cell = cells[i];
o[headers[i]] = this.parseCell(cell.trim());
}
grid.push(o);
}
return new table_1.Table({ data: grid });
};
CsvLoader.prototype.parseCell = function (data) {
var num = Number(data);
if (!isNaN(num)) {
return num;
}
return data;
};
return CsvLoader;
}());
exports.CsvLoader = CsvLoader;