UNPKG

xml-lite

Version:

maintaining xml in pure javascript (IN BOTH NODE.JS & BROWSERS)

54 lines (45 loc) 929 B
'use strict'; /** * 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); };