Sha256: 509a218c8ba3cce362766648edcc2f18d93fab95f960215410302ceb7f6103fa

Contents?: true

Size: 1.18 KB

Versions: 75

Compression:

Stored size: 1.18 KB

Contents

/*!
 * repeat-string <https://github.com/jonschlinkert/repeat-string>
 *
 * Copyright (c) 2014-2015, Jon Schlinkert.
 * Licensed under the MIT License.
 */

'use strict';

/**
 * Results cache
 */

var res = '';
var cache;

/**
 * Expose `repeat`
 */

module.exports = repeat;

/**
 * Repeat the given `string` the specified `number`
 * of times.
 *
 * **Example:**
 *
 * ```js
 * var repeat = require('repeat-string');
 * repeat('A', 5);
 * //=> AAAAA
 * ```
 *
 * @param {String} `string` The string to repeat
 * @param {Number} `number` The number of times to repeat the string
 * @return {String} Repeated string
 * @api public
 */

function repeat(str, num) {
  if (typeof str !== 'string') {
    throw new TypeError('expected a string');
  }

  // cover common, quick use cases
  if (num === 1) return str;
  if (num === 2) return str + str;

  var max = str.length * num;
  if (cache !== str || typeof cache === 'undefined') {
    cache = str;
    res = '';
  } else if (res.length >= max) {
    return res.substr(0, max);
  }

  while (max > res.length && num > 1) {
    if (num & 1) {
      res += str;
    }

    num >>= 1;
    str += str;
  }

  res += str;
  res = res.substr(0, max);
  return res;
}

Version data entries

75 entries across 74 versions & 20 rubygems

Version Path
trusty-cms-6.3.1 node_modules/repeat-string/index.js
optimacms-0.1.61 spec/dummy/node_modules/repeat-string/index.js
disco_app-0.18.0 test/dummy/node_modules/repeat-string/index.js
disco_app-0.18.2 test/dummy/node_modules/repeat-string/index.js
trusty-cms-5.0.7 node_modules/repeat-string/index.js
trusty-cms-5.0.6 node_modules/repeat-string/index.js
trusty-cms-5.0.5 node_modules/repeat-string/index.js
trusty-cms-5.0.4 node_modules/repeat-string/index.js
disco_app-0.16.1 test/dummy/node_modules/repeat-string/index.js
disco_app-0.15.2 test/dummy/node_modules/repeat-string/index.js
trusty-cms-5.0.3 node_modules/repeat-string/index.js
trusty-cms-5.0.2 node_modules/repeat-string/index.js
disco_app-0.18.4 test/dummy/node_modules/repeat-string/index.js
disco_app-0.18.1 test/dummy/node_modules/repeat-string/index.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/repeat-string/index.js
disco_app-0.14.0 test/dummy/node_modules/repeat-string/index.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/repeat-string/index.js
trusty-cms-5.0.1 node_modules/repeat-string/index.js
trusty-cms-4.3.5 node_modules/repeat-string/index.js
trusty-cms-5.0.0 node_modules/repeat-string/index.js