UNPKG

tlojs

Version:

The Last One - The last npm package you'll need to install

45 lines (44 loc) 1.35 kB
"use strict"; 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;