UNPKG

@warriorjs/cli

Version:

WarriorJS command line

46 lines (36 loc) 1.62 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _stringWidth = require('string-width'); var _stringWidth2 = _interopRequireDefault(_stringWidth); var _getScreenSize = require('./getScreenSize'); var _getScreenSize2 = _interopRequireDefault(_getScreenSize); var _printLine = require('./printLine'); var _printLine2 = _interopRequireDefault(_printLine); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Prints a message and fills the rest of the line with a padding character. * * @param {string} message The message to print. * @param {Object} options The options. * @param {string} options.position The position of the message. * @param {string} options.padding The padding character. */ function printRow(message, { position = 'start', padding = ' ' } = {}) { const [screenWidth] = (0, _getScreenSize2.default)(); const rowWidth = screenWidth - 1; // Consider line break length. const messageWidth = (0, _stringWidth2.default)(message); const paddingWidth = (rowWidth - messageWidth) / 2; const startPadding = padding.repeat(Math.floor(paddingWidth)); const endPadding = padding.repeat(Math.ceil(paddingWidth)); if (position === 'start') { (0, _printLine2.default)(`${message}${startPadding}${endPadding}`); } else if (position === 'middle') { (0, _printLine2.default)(`${startPadding}${message}${endPadding}`); } else if (position === 'end') { (0, _printLine2.default)(`${startPadding}${endPadding}${message}`); } } exports.default = printRow; module.exports = exports.default;