$.string-pad.js 773 B

1234567891011121314151617
  1. // https://github.com/ljharb/proposal-string-pad-left-right
  2. var toLength = require('./$.to-length')
  3. , repeat = require('./$.string-repeat')
  4. , defined = require('./$.defined');
  5. module.exports = function(that, maxLength, fillString, left){
  6. var S = String(defined(that))
  7. , stringLength = S.length
  8. , fillStr = fillString === undefined ? ' ' : String(fillString)
  9. , intMaxLength = toLength(maxLength);
  10. if(intMaxLength <= stringLength)return S;
  11. if(fillStr == '')fillStr = ' ';
  12. var fillLen = intMaxLength - stringLength
  13. , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
  14. if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen);
  15. return left ? stringFiller + S : S + stringFiller;
  16. };