@newdash/newdash
Version:
javascript/typescript utility library
33 lines (32 loc) • 1.49 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const baseRepeat_1 = require("./baseRepeat");
const baseToString_1 = __importDefault(require("./baseToString"));
const castSlice_1 = __importDefault(require("./castSlice"));
const hasUnicode_1 = __importDefault(require("./hasUnicode"));
const stringSize_1 = __importDefault(require("./stringSize"));
const stringToArray_1 = __importDefault(require("./stringToArray"));
/**
* Creates the padding for `string` based on `length`. The `chars` string
* is truncated if the number of characters exceeds `length`.
*
* @private
* @param {number} length The padding length.
* @param {string} [chars=' '] The string used as padding.
* @returns {string} Returns the padding for `string`.
*/
function createPadding(length, chars) {
chars = chars === undefined ? ' ' : (0, baseToString_1.default)(chars);
var charsLength = chars.length;
if (charsLength < 2) {
return charsLength ? (0, baseRepeat_1.baseRepeat)(chars, length) : chars;
}
var result = (0, baseRepeat_1.baseRepeat)(chars, Math.ceil(length / (0, stringSize_1.default)(chars)));
return (0, hasUnicode_1.default)(chars)
? (0, castSlice_1.default)((0, stringToArray_1.default)(result), 0, length).join('')
: result.slice(0, length);
}
exports.default = createPadding;