2 Object.defineProperty(exports, "__esModule", { value: true });
3 exports.createStream = void 0;
4 const alignTableData_1 = require("./alignTableData");
5 const calculateRowHeights_1 = require("./calculateRowHeights");
6 const drawBorder_1 = require("./drawBorder");
7 const drawRow_1 = require("./drawRow");
8 const makeStreamConfig_1 = require("./makeStreamConfig");
9 const mapDataUsingRowHeights_1 = require("./mapDataUsingRowHeights");
10 const padTableData_1 = require("./padTableData");
11 const stringifyTableData_1 = require("./stringifyTableData");
12 const truncateTableData_1 = require("./truncateTableData");
13 const prepareData = (data, config) => {
14 let rows = (0, stringifyTableData_1.stringifyTableData)(data);
15 rows = (0, truncateTableData_1.truncateTableData)(rows, config);
16 const rowHeights = (0, calculateRowHeights_1.calculateRowHeights)(rows, config);
17 rows = (0, mapDataUsingRowHeights_1.mapDataUsingRowHeights)(rows, rowHeights, config);
18 rows = (0, alignTableData_1.alignTableData)(rows, config);
19 rows = (0, padTableData_1.padTableData)(rows, config);
22 const create = (row, columnWidths, config) => {
23 const rows = prepareData([row], config);
24 const body = rows.map((literalRow) => {
25 return (0, drawRow_1.drawRow)(literalRow, config);
29 output += (0, drawBorder_1.drawBorderTop)(columnWidths, config);
31 output += (0, drawBorder_1.drawBorderBottom)(columnWidths, config);
32 output = output.trimEnd();
33 process.stdout.write(output);
35 const append = (row, columnWidths, config) => {
36 const rows = prepareData([row], config);
37 const body = rows.map((literalRow) => {
38 return (0, drawRow_1.drawRow)(literalRow, config);
41 const bottom = (0, drawBorder_1.drawBorderBottom)(columnWidths, config);
42 if (bottom !== '\n') {
43 output = '\r\u001B[K';
45 output += (0, drawBorder_1.drawBorderJoin)(columnWidths, config);
48 output = output.trimEnd();
49 process.stdout.write(output);
51 const createStream = (userConfig) => {
52 const config = (0, makeStreamConfig_1.makeStreamConfig)(userConfig);
53 const columnWidths = Object.values(config.columns).map((column) => {
54 return column.width + column.paddingLeft + column.paddingRight;
59 if (row.length !== config.columnCount) {
60 throw new Error('Row cell count does not match the config.columnCount.');
64 create(row, columnWidths, config);
67 append(row, columnWidths, config);
72 exports.createStream = createStream;
73 //# sourceMappingURL=createStream.js.map