@warriorjs/cli
Version:
WarriorJS command line
46 lines (36 loc) • 1.62 kB
JavaScript
;
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;