brace-expansion
Brace expansion,
as known from sh/bash, in JavaScript.


Example
import { expand } from 'brace-expansion'
expand('file-{a,b,c}.jpg')
expand('-v{,,}')
expand('file{0..2}.jpg')
expand('file-{a..c}.jpg')
expand('file{2..0}.jpg')
expand('file{0..4..2}.jpg')
expand('file-{a..e..2}.jpg')
expand('file{00..10..5}.jpg')
expand('{{A..C},{a..c}}')
expand('ppp{,config,oe{,conf}}')
API
import { expand } from 'brace-expansion'
const expanded = expand(str, [options])
Return an array of all possible and valid expansions of str. If
none are found, [str] is returned.
The options object can provide a max value to cap the number
of expansions allowed. This is limited to 100_000 by default,
to prevent DoS attacks.
const expansions = expand('{1..100}'.repeat(5), {
max: 100,
})
Valid expansions are:
;/^(.*,)+(.+)?$/
A comma separated list of options, like {a,b} or {a,{b,c}} or {,a,}.
;/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
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+)?$/
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.