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