17 lines
773 B
JavaScript
17 lines
773 B
JavaScript
// https://github.com/ljharb/proposal-string-pad-left-right
|
|
var toLength = require('./$.to-length')
|
|
, repeat = require('./$.string-repeat')
|
|
, defined = require('./$.defined');
|
|
|
|
module.exports = function(that, maxLength, fillString, left){
|
|
var S = String(defined(that))
|
|
, stringLength = S.length
|
|
, fillStr = fillString === undefined ? ' ' : String(fillString)
|
|
, intMaxLength = toLength(maxLength);
|
|
if(intMaxLength <= stringLength)return S;
|
|
if(fillStr == '')fillStr = ' ';
|
|
var fillLen = intMaxLength - stringLength
|
|
, stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
|
|
if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
|
|
return left ? stringFiller + S : S + stringFiller;
|
|
}; |