{%= description %}
node benchmark
var expand = require('{%= name %}'); expand('a/{x,y}/c{d}e') //=> ['a/x/cde', 'a/y/cde'] expand('a/b/c/{x,y}') //=> ['a/b/c/x', 'a/b/c/y'] expand('a/{x,{1..5},y}/c{d}e') //=> ['a/x/cde', 'a/1/cde', 'a/y/cde', 'a/2/cde', 'a/3/cde', 'a/4/cde', 'a/5/cde']
See the examples and tests to see more use cases.
Uses expand-range for range expansion.
expand('a{1..3}b') //=> ['a1b', 'a2b', 'a3b'] expand('a{5..8}b') //=> ['a5b', 'a6b', 'a7b', 'a8b'] expand('a{00..05}b') //=> ['a00b', 'a01b', 'a02b', 'a03b', 'a04b', 'a05b'] expand('a{01..03}b') //=> ['a01b', 'a02b', 'a03b'] expand('a{000..005}b') //=> ['a000b', 'a001b', 'a002b', 'a003b', 'a004b', 'a005b'] expand('a{a..e}b') //=> ['aab', 'abb', 'acb', 'adb', 'aeb'] expand('a{A..E}b') //=> ['aAb', 'aBb', 'aCb', 'aDb', 'aEb']
Pass a function as the last argument to customize range expansions:
var range = expand('x{a..e}y', function (str, i) { return String.fromCharCode(str) + i; }); console.log(range); //=> ['xa0y', 'xb1y', 'xc2y', 'xd3y', 'xe4y']
See expand-range for benchmarks, tests and information related to expanding ranges.
{%= include(“install-npm”, {save: true}) %}
npm test
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue]({%= bugs.url %}).
{%= include(“author”) %}
{%= copyright() %} {%= license() %}
{%= include(“footer”) %}