minimal adjustments
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / table / dist / makeConfig.js
1 "use strict";
2
3 Object.defineProperty(exports, "__esModule", {
4   value: true
5 });
6 exports.default = void 0;
7
8 var _lodash = _interopRequireDefault(require("lodash.clonedeep"));
9
10 var _calculateMaximumColumnWidthIndex = _interopRequireDefault(require("./calculateMaximumColumnWidthIndex"));
11
12 var _getBorderCharacters = _interopRequireDefault(require("./getBorderCharacters"));
13
14 var _validateConfig = _interopRequireDefault(require("./validateConfig"));
15
16 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18 /**
19  * Merges user provided border characters with the default border ("honeywell") characters.
20  *
21  * @param {object} border
22  * @returns {object}
23  */
24 const makeBorder = (border = {}) => {
25   return Object.assign({}, (0, _getBorderCharacters.default)('honeywell'), border);
26 };
27 /**
28  * Creates a configuration for every column using default
29  * values for the missing configuration properties.
30  *
31  * @param {Array[]} rows
32  * @param {object} columns
33  * @param {object} columnDefault
34  * @returns {object}
35  */
36
37
38 const makeColumns = (rows, columns = {}, columnDefault = {}) => {
39   const maximumColumnWidthIndex = (0, _calculateMaximumColumnWidthIndex.default)(rows);
40
41   for (let index = 0; index < rows[0].length; index++) {
42     if (typeof columns[index] === 'undefined') {
43       columns[index] = {};
44     }
45
46     columns[index] = Object.assign({
47       alignment: 'left',
48       paddingLeft: 1,
49       paddingRight: 1,
50       truncate: Number.POSITIVE_INFINITY,
51       width: maximumColumnWidthIndex[index],
52       wrapWord: false
53     }, columnDefault, columns[index]);
54   }
55
56   return columns;
57 };
58 /**
59  * Makes a new configuration object out of the userConfig object
60  * using default values for the missing configuration properties.
61  *
62  * @param {Array[]} rows
63  * @param {object} userConfig
64  * @returns {object}
65  */
66
67
68 const makeConfig = (rows, userConfig = {}) => {
69   (0, _validateConfig.default)('config.json', userConfig);
70   const config = (0, _lodash.default)(userConfig);
71   config.border = makeBorder(config.border);
72   config.columns = makeColumns(rows, config.columns, config.columnDefault);
73
74   if (!config.drawHorizontalLine) {
75     /**
76          * @returns {boolean}
77          */
78     config.drawHorizontalLine = () => {
79       return true;
80     };
81   }
82
83   if (config.singleLine === undefined) {
84     config.singleLine = false;
85   }
86
87   return config;
88 };
89
90 var _default = makeConfig;
91 exports.default = _default;
92 //# sourceMappingURL=makeConfig.js.map