UNPKG

gauge-ts

Version:
69 lines (68 loc) 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Table = void 0; const TableRow_1 = require("./TableRow"); class Table { _headers; _tableRows; _rows; static from(table) { if (!table.getHeaders()) { throw new Error("Invalid table passed"); } const header = table.getHeaders(); const gaugeTable = new Table(header?.getCellsList() ?? []); for (const row of table.getRowsList()) { gaugeTable.addRow(row.getCellsList()); } return gaugeTable; } constructor(headers) { this._headers = headers; this._rows = new Array(); this._tableRows = new Array(); } /** * @deprecated Use getTableRows() instead. * @public */ get rows() { console.warn(".rows accessor is deprecated. Use .getTableRows() instead."); return this._tableRows; } addRow(row) { if (row.length !== this._headers.length) { throw new Error(`Row size mismatch. Expected row size: ${this._headers.length}.` + `Obtained row size: ${row.length}.`); } this._rows.push(row); const tableRow = new TableRow_1.TableRow(); for (const header of this._headers) { tableRow.addCell(header, row[this._headers.indexOf(header)]); } this._tableRows.push(tableRow); } getColumnNames() { return this._headers; } getColumnName(index) { if (index < 0 || index >= this._headers.length) { throw new Error(`Column with index ${index} not found. Actual column size: ${this._headers.length}.`); } return this._headers[index]; } getTableRows() { return this._tableRows; } getColumnValues(columnName) { const i = this._headers.indexOf(columnName); return this.getColumnValuesForIndex(i); } getColumnValuesForIndex(index) { if (index >= 0) { return this._rows.map((row) => row[index]); } return []; } } exports.Table = Table;