drawHeader.js
 1  "use strict";
 2  Object.defineProperty(exports, "__esModule", { value: true });
 3  exports.drawHeader = void 0;
 4  const alignString_1 = require("./alignString");
 5  const drawRow_1 = require("./drawRow");
 6  const padTableData_1 = require("./padTableData");
 7  const truncateTableData_1 = require("./truncateTableData");
 8  const wrapCell_1 = require("./wrapCell");
 9  const drawHeader = (width, config) => {
10      if (!config.header) {
11          throw new Error('Can not draw header without header configuration');
12      }
13      const { alignment, paddingRight, paddingLeft, wrapWord } = config.header;
14      let content = config.header.content;
15      content = truncateTableData_1.truncateString(content, config.header.truncate);
16      const headerLines = wrapCell_1.wrapCell(content, width, wrapWord);
17      return headerLines.map((headerLine) => {
18          let line = alignString_1.alignString(headerLine, width, alignment);
19          line = padTableData_1.padString(line, paddingLeft, paddingRight);
20          return drawRow_1.drawRow([line], {
21              ...config,
22              drawVerticalLine: (index) => {
23                  const columnCount = config.columns.length;
24                  return config.drawVerticalLine(index === 0 ? 0 : columnCount, columnCount);
25              },
26          });
27      }).join('');
28  };
29  exports.drawHeader = drawHeader;