massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / table / dist / src / createStream.js
1 "use strict";
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);
20     return rows;
21 };
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);
26     }).join('');
27     let output;
28     output = '';
29     output += (0, drawBorder_1.drawBorderTop)(columnWidths, config);
30     output += body;
31     output += (0, drawBorder_1.drawBorderBottom)(columnWidths, config);
32     output = output.trimEnd();
33     process.stdout.write(output);
34 };
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);
39     }).join('');
40     let output = '';
41     const bottom = (0, drawBorder_1.drawBorderBottom)(columnWidths, config);
42     if (bottom !== '\n') {
43         output = '\r\u001B[K';
44     }
45     output += (0, drawBorder_1.drawBorderJoin)(columnWidths, config);
46     output += body;
47     output += bottom;
48     output = output.trimEnd();
49     process.stdout.write(output);
50 };
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;
55     });
56     let empty = true;
57     return {
58         write: (row) => {
59             if (row.length !== config.columnCount) {
60                 throw new Error('Row cell count does not match the config.columnCount.');
61             }
62             if (empty) {
63                 empty = false;
64                 create(row, columnWidths, config);
65             }
66             else {
67                 append(row, columnWidths, config);
68             }
69         },
70     };
71 };
72 exports.createStream = createStream;
73 //# sourceMappingURL=createStream.js.map