'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.drawBorderTop = exports.drawBorderJoin = exports.drawBorderBottom = exports.drawBorder = undefined; var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @typedef drawBorder~parts * @property {string} left * @property {string} right * @property {string} body * @property {string} join */ /** * @param {number[]} columnSizeIndex * @param {drawBorder~parts} parts * @returns {string} */ const drawBorder = (columnSizeIndex, parts) => { const columns = _lodash2.default.map(columnSizeIndex, size => { return _lodash2.default.repeat(parts.body, size); }).join(parts.join); return parts.left + columns + parts.right + '\n'; }; /** * @typedef drawBorderTop~parts * @property {string} topLeft * @property {string} topRight * @property {string} topBody * @property {string} topJoin */ /** * @param {number[]} columnSizeIndex * @param {drawBorderTop~parts} parts * @returns {string} */ const drawBorderTop = (columnSizeIndex, parts) => { return drawBorder(columnSizeIndex, { body: parts.topBody, join: parts.topJoin, left: parts.topLeft, right: parts.topRight }); }; /** * @typedef drawBorderJoin~parts * @property {string} joinLeft * @property {string} joinRight * @property {string} joinBody * @property {string} joinJoin */ /** * @param {number[]} columnSizeIndex * @param {drawBorderJoin~parts} parts * @returns {string} */ const drawBorderJoin = (columnSizeIndex, parts) => { return drawBorder(columnSizeIndex, { body: parts.joinBody, join: parts.joinJoin, left: parts.joinLeft, right: parts.joinRight }); }; /** * @typedef drawBorderBottom~parts * @property {string} topLeft * @property {string} topRight * @property {string} topBody * @property {string} topJoin */ /** * @param {number[]} columnSizeIndex * @param {drawBorderBottom~parts} parts * @returns {string} */ const drawBorderBottom = (columnSizeIndex, parts) => { return drawBorder(columnSizeIndex, { body: parts.bottomBody, join: parts.bottomJoin, left: parts.bottomLeft, right: parts.bottomRight }); }; exports.drawBorder = drawBorder; exports.drawBorderBottom = drawBorderBottom; exports.drawBorderJoin = drawBorderJoin; exports.drawBorderTop = drawBorderTop;