expand-path

1.0.6 • Public • Published

Build Status downloads npm Code Climate Test Coverage dependencies Size

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.

Package Sidebar

Install

npm i expand-path

Weekly Downloads

5

Version

1.0.6

License

MIT

Unpacked Size

18.2 kB

Total Files

26

Last publish

Collaborators

  • tandrewnichols