expand-path
v1.0.6
Published
Super light-weight brace expansion for node
Downloads
17
Maintainers
Readme
expand-path
Super light-weight brace expansion for node
Installation
npm install --save expand-path
Summary
Pass in a path with brackets, braces, or angled brackets and get an array of matching paths back.
Usage
You can use expand-path
to get a list of object paths (e.g. for use with lodash _.get
) or with file paths. expand-path
doesn't care about the separator (or even check what it is). It just expands a "path" with brackets into multiple paths (essentially a cartesian product of the possible paths).
Node
var expand = require('expand-path');
Browser
Use whatever serving mechanism you prefer and serve dist/expand-path.js
or dist/expand-path.min.js
, then access it globally with expandPath
.
<script src="/dist/expand-path.js"></script>
<script>
var paths = expandPath('foo.ba[r,z]');
</script>
This script is a measly 1.1kb minified.
With object paths
var expand = require('expand-path');
var list = expand('foo.bar.[baz,quux].[hello,goodbye].world');
/*
* "list" equals:
* [
* 'foo.bar.baz.hello.world',
* 'foo.bar.quux.hello.world',
* 'foo.bar.baz.goodbye.world',
* 'foo.bar.quux.goodbye.world'
* ]
*/
With file paths
var expand = require('expand-path');
var list = expand('foo/bar/[baz,quux]/hello/world[.js,-spec.coffee]');
/*
* "list" equals:
* [
* 'foo/bar/baz/hello/world.js',
* 'foo/bar/quux/hello/world.js',
* 'foo/bar/baz/hello/world-spec.coffee',
* 'foo/bar/quux/hello/world-spec.coffee'
* ]
*/
Note that expand-path
does not do any disk I/O. It does not read in these file paths or check that they exist. All it does is expand brackets into a list of paths. There are plenty of other modules that can make use of a list of paths (async
, in combination with fs
is enough).
Contributing
I'll be happy to merge any pull request that adds value and has passing tests. Be sure to add a test both for node and for the browser. Tests are run with grunt
.