Brace expansion, as known from sh/bash, in JavaScript.
import expand from 'brace-expansion'
expand('file-{a,b,c}.jpg')
// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
expand('-v{,,}')
// => ['-v', '-v', '-v']
expand('file{0..2}.jpg')
// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
expand('file-{a..c}.jpg')
// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
expand('file{2..0}.jpg')
// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
expand('file{0..4..2}.jpg')
// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
expand('file-{a..e..2}.jpg')
// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
expand('file{00..10..5}.jpg')
// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
expand('{{A..C},{a..c}}')
// => ['A', 'B', 'C', 'a', 'b', 'c']
expand('ppp{,config,oe{,conf}}')
// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
import expand from 'brace-expansion'
Return an array of all possible and valid expansions of str
. If none are found, [str]
is returned.
Valid expansions are:
/^(.*,)+(.+)?$/
// {a,b,...}
A comma separated list of options, like {a,b}
or {a,{b,c}}
or {,a,}
.
/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
// {x..y[..incr]}
A numeric sequence from x
to y
inclusive, with optional increment. If x
or y
start with a leading 0
, all the numbers will be padded to have equal length. Negative numbers and backwards iteration work too.
/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
// {x..y[..incr]}
An alphabetic sequence from x
to y
inclusive, with optional increment. x
and y
must be exactly one character, and if given, incr
must be a number.
For compatibility reasons, the string ${
is not eligible for brace expansion.
With npm do:
npm install brace-expansion
This module is proudly supported by my Sponsors!
Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my Patreon. Not sure how much of my modules you're using? Try feross/thanks!
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.
Author: juliangruber
Source Code: https://github.com/juliangruber/brace-expansion
License: MIT license