package/package.json000644 000767 000024 0000003303 13003165442013014 0ustar00000000 000000 { "name": "repeat-string", "description": "Repeat the given string n times. Fastest implementation for repeating a string.", "version": "1.6.1", "homepage": "https://github.com/jonschlinkert/repeat-string", "author": "Jon Schlinkert (http://github.com/jonschlinkert)", "contributors": [ "Brian Woodward (https://github.com/doowb)", "Jon Schlinkert (http://twitter.com/jonschlinkert)", "Linus Unnebäck (http://linus.unnebäck.se)", "Thijs Busser (http://tbusser.net)", "Titus (wooorm.com)" ], "repository": "jonschlinkert/repeat-string", "bugs": { "url": "https://github.com/jonschlinkert/repeat-string/issues" }, "license": "MIT", "files": [ "index.js" ], "main": "index.js", "engines": { "node": ">=0.10" }, "scripts": { "test": "mocha" }, "devDependencies": { "ansi-cyan": "^0.1.1", "benchmarked": "^0.2.5", "gulp-format-md": "^0.1.11", "isobject": "^2.1.0", "mocha": "^3.1.2", "repeating": "^3.0.0", "text-table": "^0.2.0", "yargs-parser": "^4.0.2" }, "keywords": [ "fast", "fastest", "fill", "left", "left-pad", "multiple", "pad", "padding", "repeat", "repeating", "repetition", "right", "right-pad", "string", "times" ], "verb": { "toc": false, "layout": "default", "tasks": [ "readme" ], "plugins": [ "gulp-format-md" ], "related": { "list": [ "repeat-element" ] }, "helpers": [ "./benchmark/helper.js" ], "reflinks": [ "verb" ] } } package/README.md000644 000767 000024 0000011701 13003067037012007 0ustar00000000 000000 # repeat-string [![NPM version](https://img.shields.io/npm/v/repeat-string.svg?style=flat)](https://www.npmjs.com/package/repeat-string) [![NPM monthly downloads](https://img.shields.io/npm/dm/repeat-string.svg?style=flat)](https://npmjs.org/package/repeat-string) [![NPM total downloads](https://img.shields.io/npm/dt/repeat-string.svg?style=flat)](https://npmjs.org/package/repeat-string) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/repeat-string.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/repeat-string) > Repeat the given string n times. Fastest implementation for repeating a string. ## Install Install with [npm](https://www.npmjs.com/): ```sh $ npm install --save repeat-string ``` ## Usage ### [repeat](index.js#L41) Repeat the given `string` the specified `number` of times. **Example:** **Example** ```js var repeat = require('repeat-string'); repeat('A', 5); //=> AAAAA ``` **Params** * `string` **{String}**: The string to repeat * `number` **{Number}**: The number of times to repeat the string * `returns` **{String}**: Repeated string ## Benchmarks Repeat string is significantly faster than the native method (which is itself faster than [repeating](https://github.com/sindresorhus/repeating)): ```sh # 2x repeat-string █████████████████████████ (26,953,977 ops/sec) repeating █████████ (9,855,695 ops/sec) native ██████████████████ (19,453,895 ops/sec) # 3x repeat-string █████████████████████████ (19,445,252 ops/sec) repeating ███████████ (8,661,565 ops/sec) native ████████████████████ (16,020,598 ops/sec) # 10x repeat-string █████████████████████████ (23,792,521 ops/sec) repeating █████████ (8,571,332 ops/sec) native ███████████████ (14,582,955 ops/sec) # 50x repeat-string █████████████████████████ (23,640,179 ops/sec) repeating █████ (5,505,509 ops/sec) native ██████████ (10,085,557 ops/sec) # 250x repeat-string █████████████████████████ (23,489,618 ops/sec) repeating ████ (3,962,937 ops/sec) native ████████ (7,724,892 ops/sec) # 2000x repeat-string █████████████████████████ (20,315,172 ops/sec) repeating ████ (3,297,079 ops/sec) native ███████ (6,203,331 ops/sec) # 20000x repeat-string █████████████████████████ (23,382,915 ops/sec) repeating ███ (2,980,058 ops/sec) native █████ (5,578,808 ops/sec) ``` **Run the benchmarks** Install dev dependencies: ```sh npm i -d && node benchmark ``` ## About ### Related projects [repeat-element](https://www.npmjs.com/package/repeat-element): Create an array by repeating the given value n times. | [homepage](https://github.com/jonschlinkert/repeat-element "Create an array by repeating the given value n times.") ### Contributing Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). ### Contributors | **Commits** | **Contributor**
| | --- | --- | | 51 | [jonschlinkert](https://github.com/jonschlinkert) | | 2 | [LinusU](https://github.com/LinusU) | | 2 | [tbusser](https://github.com/tbusser) | | 1 | [doowb](https://github.com/doowb) | | 1 | [wooorm](https://github.com/wooorm) | ### Building docs _(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ To generate the readme and API documentation with [verb](https://github.com/verbose/verb): ```sh $ npm install -g verb verb-generate-readme && verb ``` ### Running tests Install dev dependencies: ```sh $ npm install -d && npm test ``` ### Author **Jon Schlinkert** * [github/jonschlinkert](https://github.com/jonschlinkert) * [twitter/jonschlinkert](http://twitter.com/jonschlinkert) ### License Copyright © 2016, [Jon Schlinkert](http://github.com/jonschlinkert). Released under the [MIT license](https://github.com/jonschlinkert/repeat-string/blob/master/LICENSE). *** _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 23, 2016._package/LICENSE000644 000767 000024 0000002100 12665032170011531 0ustar00000000 000000 The MIT License (MIT) Copyright (c) 2014-2016, Jon Schlinkert. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. package/index.js000644 000767 000024 0000002275 13003164203012174 0ustar00000000 000000 /*! * 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; }