expand-range NPM version NPM downloads Build Status

Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. See the benchmarks. Used by micromatch.

Install

Install with npm:

sh $ npm install expand-range --save

Wraps [fill-range] to do range expansion using .. separated strings. See [fill-range] for the full list of options and features.

Example usage

js var expand = require('expand-range');

Params

js expand(start, stop, increment);

Examples

```js expand('a..e') //=> ['a', 'b', 'c', 'd', 'e']

expand('a..e..2') //=> ['a', 'c', 'e']

expand('A..E..2') //=> ['A', 'C', 'E']

expand('1..3') //=> ['1', '2', '3']

expand('0..-5') //=> [ '0', '-1', '-2', '-3', '-4', '-5' ]

expand('-9..9..3') //=> [ '-9', '-6', '-3', '0', '3', '6', '9' ])

expand('-1..-10..-2') //=> [ '-1', '-3', '-5', '-7', '-9' ]

expand('1..10..2') //=> [ '1', '3', '5', '7', '9' ] ```

Custom function

Optionally pass a custom function as the second argument:

js expand('a..e', function (val, isNumber, pad, i) { if (!isNumber) { return String.fromCharCode(val) + i; } return val; }); //=> ['a0', 'b1', 'c2', 'd3', 'e4']

Benchmarks

```sh

benchmark/fixtures/alpha-lower.js (29 bytes)

brace-expansion x 145,653 ops/sec ±0.89% (87 runs sampled) expand-range x 453,213 ops/sec ±1.66% (85 runs sampled) minimatch x 152,193 ops/sec ±1.17% (86 runs sampled)

benchmark/fixtures/alpha-upper.js (29 bytes)

brace-expansion x 149,975 ops/sec ±1.10% (88 runs sampled) expand-range x 459,390 ops/sec ±1.27% (84 runs sampled) minimatch x 155,253 ops/sec ±1.25% (88 runs sampled)

benchmark/fixtures/padded.js (33 bytes)

brace-expansion x 14,694 ops/sec ±1.37% (85 runs sampled) expand-range x 169,393 ops/sec ±1.76% (80 runs sampled) minimatch x 15,052 ops/sec ±1.15% (88 runs sampled)

benchmark/fixtures/range.js (29 bytes)

brace-expansion x 142,968 ops/sec ±1.35% (86 runs sampled) expand-range x 465,579 ops/sec ±1.43% (86 runs sampled) minimatch x 126,872 ops/sec ±1.18% (90 runs sampled) ```

Related projects

You might also be interested in these projects:

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Building docs

Generate readme and API documentation with verb:

sh $ npm install verb && npm run docs

Or, if verb is installed globally:

sh $ verb

Running tests

Install dev dependencies:

sh $ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2016, Jon Schlinkert. Released under the MIT license.


This file was generated by verb, v0.9.0, on May 05, 2016.