createPadding.js 1.01 KB
define(['../string/repeat', './root'], function(repeat, root) {

  /* Native method references for those with the same name as other `lodash` methods. */
  var nativeCeil = Math.ceil,
      nativeIsFinite = root.isFinite;

  /**
   * Creates the padding required for `string` based on the given `length`.
   * The `chars` string is truncated if the number of characters exceeds `length`.
   *
   * @private
   * @param {string} string The string to create padding for.
   * @param {number} [length=0] The padding length.
   * @param {string} [chars=' '] The string used as padding.
   * @returns {string} Returns the pad for `string`.
   */
  function createPadding(string, length, chars) {
    var strLength = string.length;
    length = +length;

    if (strLength >= length || !nativeIsFinite(length)) {
      return '';
    }
    var padLength = length - strLength;
    chars = chars == null ? ' ' : (chars + '');
    return repeat(chars, nativeCeil(padLength / chars.length)).slice(0, padLength);
  }

  return createPadding;
});