xml-lite
Version:
maintaining xml in pure javascript (IN BOTH NODE.JS & BROWSERS)
54 lines (45 loc) • 929 B
JavaScript
/**
* repeat-string module
* @module repeat-string
* @see module:index
*/
let res = '';
let cache;
/**
* 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
*/
module.exports = (str, num) => {
str = String(str);
// cover common, quick use cases
if (num === 1) return str;
if (num === 2) return str + str;
const max = str.length * num;
if (cache !== str || typeof cache === 'undefined') {
cache = str;
res = '';
}
while (max > res.length && num > 0) {
if (num & 1) {
res += str;
}
num >>= 1;
if (!num) break;
str += str;
}
return res.substr(0, max);
};
;