UNPKG

2.28 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.drawBorderTop = exports.drawBorderJoin = exports.drawBorderBottom = exports.drawBorder = void 0;
7
8/**
9 * @typedef drawBorder~parts
10 * @property {string} left
11 * @property {string} right
12 * @property {string} body
13 * @property {string} join
14 */
15
16/**
17 * @param {number[]} columnSizeIndex
18 * @param {drawBorder~parts} parts
19 * @returns {string}
20 */
21const drawBorder = (columnSizeIndex, parts) => {
22 const columns = columnSizeIndex.map(size => {
23 return parts.body.repeat(size);
24 }).join(parts.join);
25 return parts.left + columns + parts.right + '\n';
26};
27/**
28 * @typedef drawBorderTop~parts
29 * @property {string} topLeft
30 * @property {string} topRight
31 * @property {string} topBody
32 * @property {string} topJoin
33 */
34
35/**
36 * @param {number[]} columnSizeIndex
37 * @param {drawBorderTop~parts} parts
38 * @returns {string}
39 */
40
41
42exports.drawBorder = drawBorder;
43
44const drawBorderTop = (columnSizeIndex, parts) => {
45 return drawBorder(columnSizeIndex, {
46 body: parts.topBody,
47 join: parts.topJoin,
48 left: parts.topLeft,
49 right: parts.topRight
50 });
51};
52/**
53 * @typedef drawBorderJoin~parts
54 * @property {string} joinLeft
55 * @property {string} joinRight
56 * @property {string} joinBody
57 * @property {string} joinJoin
58 */
59
60/**
61 * @param {number[]} columnSizeIndex
62 * @param {drawBorderJoin~parts} parts
63 * @returns {string}
64 */
65
66
67exports.drawBorderTop = drawBorderTop;
68
69const drawBorderJoin = (columnSizeIndex, parts) => {
70 return drawBorder(columnSizeIndex, {
71 body: parts.joinBody,
72 join: parts.joinJoin,
73 left: parts.joinLeft,
74 right: parts.joinRight
75 });
76};
77/**
78 * @typedef drawBorderBottom~parts
79 * @property {string} topLeft
80 * @property {string} topRight
81 * @property {string} topBody
82 * @property {string} topJoin
83 */
84
85/**
86 * @param {number[]} columnSizeIndex
87 * @param {drawBorderBottom~parts} parts
88 * @returns {string}
89 */
90
91
92exports.drawBorderJoin = drawBorderJoin;
93
94const drawBorderBottom = (columnSizeIndex, parts) => {
95 return drawBorder(columnSizeIndex, {
96 body: parts.bottomBody,
97 join: parts.bottomJoin,
98 left: parts.bottomLeft,
99 right: parts.bottomRight
100 });
101};
102
103exports.drawBorderBottom = drawBorderBottom;
104//# sourceMappingURL=drawBorder.js.map
\No newline at end of file