UNPKG

2.46 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _lodash = _interopRequireDefault(require("lodash"));
9
10var _getBorderCharacters = _interopRequireDefault(require("./getBorderCharacters"));
11
12var _validateConfig = _interopRequireDefault(require("./validateConfig"));
13
14var _calculateMaximumColumnWidthIndex = _interopRequireDefault(require("./calculateMaximumColumnWidthIndex"));
15
16function _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 */
24const 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
38const makeColumns = (rows, columns = {}, columnDefault = {}) => {
39 const maximumColumnWidthIndex = (0, _calculateMaximumColumnWidthIndex.default)(rows);
40
41 _lodash.default.times(rows[0].length, index => {
42 if (_lodash.default.isUndefined(columns[index])) {
43 columns[index] = {};
44 }
45
46 columns[index] = Object.assign({
47 alignment: 'left',
48 paddingLeft: 1,
49 paddingRight: 1,
50 truncate: 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
68const makeConfig = (rows, userConfig = {}) => {
69 (0, _validateConfig.default)('config.json', userConfig);
70
71 const config = _lodash.default.cloneDeep(userConfig);
72
73 config.border = makeBorder(config.border);
74 config.columns = makeColumns(rows, config.columns, config.columnDefault);
75
76 if (!config.drawHorizontalLine) {
77 /**
78 * @returns {boolean}
79 */
80 config.drawHorizontalLine = () => {
81 return true;
82 };
83 }
84
85 if (config.singleLine === undefined) {
86 config.singleLine = false;
87 }
88
89 return config;
90};
91
92var _default = makeConfig;
93exports.default = _default;
94//# sourceMappingURL=makeConfig.js.map
\No newline at end of file