minimal adjustments
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / table / dist / createStream.js
1 "use strict";
2
3 Object.defineProperty(exports, "__esModule", {
4   value: true
5 });
6 exports.default = void 0;
7
8 var _alignTableData = _interopRequireDefault(require("./alignTableData"));
9
10 var _calculateRowHeightIndex = _interopRequireDefault(require("./calculateRowHeightIndex"));
11
12 var _drawBorder = require("./drawBorder");
13
14 var _drawRow = _interopRequireDefault(require("./drawRow"));
15
16 var _makeStreamConfig = _interopRequireDefault(require("./makeStreamConfig"));
17
18 var _mapDataUsingRowHeightIndex = _interopRequireDefault(require("./mapDataUsingRowHeightIndex"));
19
20 var _padTableData = _interopRequireDefault(require("./padTableData"));
21
22 var _stringifyTableData = _interopRequireDefault(require("./stringifyTableData"));
23
24 var _truncateTableData = _interopRequireDefault(require("./truncateTableData"));
25
26 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
28 /**
29  * @param {Array} data
30  * @param {object} config
31  * @returns {Array}
32  */
33 const prepareData = (data, config) => {
34   let rows;
35   rows = (0, _stringifyTableData.default)(data);
36   rows = (0, _truncateTableData.default)(data, config);
37   const rowHeightIndex = (0, _calculateRowHeightIndex.default)(rows, config);
38   rows = (0, _mapDataUsingRowHeightIndex.default)(rows, rowHeightIndex, config);
39   rows = (0, _alignTableData.default)(rows, config);
40   rows = (0, _padTableData.default)(rows, config);
41   return rows;
42 };
43 /**
44  * @param {string[]} row
45  * @param {number[]} columnWidthIndex
46  * @param {object} config
47  * @returns {undefined}
48  */
49
50
51 const create = (row, columnWidthIndex, config) => {
52   const rows = prepareData([row], config);
53   const body = rows.map(literalRow => {
54     return (0, _drawRow.default)(literalRow, config.border);
55   }).join('');
56   let output;
57   output = '';
58   output += (0, _drawBorder.drawBorderTop)(columnWidthIndex, config.border);
59   output += body;
60   output += (0, _drawBorder.drawBorderBottom)(columnWidthIndex, config.border);
61   output = output.trimEnd();
62   process.stdout.write(output);
63 };
64 /**
65  * @param {string[]} row
66  * @param {number[]} columnWidthIndex
67  * @param {object} config
68  * @returns {undefined}
69  */
70
71
72 const append = (row, columnWidthIndex, config) => {
73   const rows = prepareData([row], config);
74   const body = rows.map(literalRow => {
75     return (0, _drawRow.default)(literalRow, config.border);
76   }).join('');
77   let output = '';
78   const bottom = (0, _drawBorder.drawBorderBottom)(columnWidthIndex, config.border);
79
80   if (bottom !== '\n') {
81     output = '\r\u001B[K';
82   }
83
84   output += (0, _drawBorder.drawBorderJoin)(columnWidthIndex, config.border);
85   output += body;
86   output += bottom;
87   output = output.trimEnd();
88   process.stdout.write(output);
89 };
90 /**
91  * @param {object} userConfig
92  * @returns {object}
93  */
94
95
96 const createStream = (userConfig = {}) => {
97   const config = (0, _makeStreamConfig.default)(userConfig);
98   const columnWidthIndex = Object.values(config.columns).map(column => {
99     return column.width + column.paddingLeft + column.paddingRight;
100   });
101   let empty;
102   empty = true;
103   return {
104     /**
105      * @param {string[]} row
106      * @returns {undefined}
107      */
108     write: row => {
109       if (row.length !== config.columnCount) {
110         throw new Error('Row cell count does not match the config.columnCount.');
111       }
112
113       if (empty) {
114         empty = false;
115         return create(row, columnWidthIndex, config);
116       } else {
117         return append(row, columnWidthIndex, config);
118       }
119     }
120   };
121 };
122
123 var _default = createStream;
124 exports.default = _default;
125 //# sourceMappingURL=createStream.js.map