3 Object.defineProperty(exports, "__esModule", {
6 exports.default = void 0;
8 var _alignTableData = _interopRequireDefault(require("./alignTableData"));
10 var _calculateRowHeightIndex = _interopRequireDefault(require("./calculateRowHeightIndex"));
12 var _drawBorder = require("./drawBorder");
14 var _drawRow = _interopRequireDefault(require("./drawRow"));
16 var _makeStreamConfig = _interopRequireDefault(require("./makeStreamConfig"));
18 var _mapDataUsingRowHeightIndex = _interopRequireDefault(require("./mapDataUsingRowHeightIndex"));
20 var _padTableData = _interopRequireDefault(require("./padTableData"));
22 var _stringifyTableData = _interopRequireDefault(require("./stringifyTableData"));
24 var _truncateTableData = _interopRequireDefault(require("./truncateTableData"));
26 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30 * @param {object} config
33 const prepareData = (data, config) => {
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);
44 * @param {string[]} row
45 * @param {number[]} columnWidthIndex
46 * @param {object} config
47 * @returns {undefined}
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);
58 output += (0, _drawBorder.drawBorderTop)(columnWidthIndex, config.border);
60 output += (0, _drawBorder.drawBorderBottom)(columnWidthIndex, config.border);
61 output = output.trimEnd();
62 process.stdout.write(output);
65 * @param {string[]} row
66 * @param {number[]} columnWidthIndex
67 * @param {object} config
68 * @returns {undefined}
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);
78 const bottom = (0, _drawBorder.drawBorderBottom)(columnWidthIndex, config.border);
80 if (bottom !== '\n') {
81 output = '\r\u001B[K';
84 output += (0, _drawBorder.drawBorderJoin)(columnWidthIndex, config.border);
87 output = output.trimEnd();
88 process.stdout.write(output);
91 * @param {object} userConfig
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;
105 * @param {string[]} row
106 * @returns {undefined}
109 if (row.length !== config.columnCount) {
110 throw new Error('Row cell count does not match the config.columnCount.');
115 return create(row, columnWidthIndex, config);
117 return append(row, columnWidthIndex, config);
123 var _default = createStream;
124 exports.default = _default;
125 //# sourceMappingURL=createStream.js.map