parse-glob
Parse a glob pattern into an object of tokens.
Changes from v1.0.0 to v3.0.0
- all path-related properties are now on the
path
object - all boolean properties are now on the
is
object - adds
base
property
See the properties section for details.
Install with npm
npm i parse-glob --save
- parses 1,000+ glob patterns in 29ms (2.3 GHz Intel Core i7)
- Extensive unit tests (more than 1,000 lines), covering wildcards, globstars, character classes, brace patterns, extglobs, dotfiles and other complex patterns.
See the tests for hundreds of examples.
Usage
var parseGlob = require('parse-glob');
Example
parseGlob('a/b/c/**/*.{yml,json}');
Returns:
{ orig: 'a/b/c/**/*.{yml,json}',
is:
{ glob: true,
negated: false,
extglob: false,
braces: true,
brackets: false,
globstar: true,
dotfile: false,
dotdir: false },
glob: '**/*.{yml,json}',
base: 'a/b/c',
path:
{ dirname: 'a/b/c/**/',
basename: '*.{yml,json}',
filename: '*',
extname: '.{yml,json}',
ext: '{yml,json}' } }
Properties
The object returned by parseGlob has the following properties:
orig
: a copy of the original, unmodified glob patternis
: an object with boolean information about the glob:
glob
: true if the pattern actually a glob patternnegated
: true if it's a negation pattern (!**/foo.js
)extglob
: true if it has extglobs (@(foo|bar)
)braces
: true if it has braces ({1..2}
or .{txt,md}
)brackets
: true if it has POSIX brackets ([[:alpha:]]
)globstar
: true if the pattern has a globstar (double star, **
)dotfile
: true if the pattern should match dotfilesdotdir
: true if the pattern should match dot-directories (like .git
)
glob
: the glob pattern part of the string, if anybase
: the non-glob part of the string, if anypath
: file path segments
dirname
: directorybasename
: file name with extensionfilename
: file name without extensionextname
: file extension with dotext
: file extension without dot
Related
- glob-base: Returns an object with the (non-glob) base path and the actual pattern.
- glob-parent: Strips glob magic from a string to provide the parent path
- is-glob: Returns
true
if the given string looks like a glob pattern. - glob-path-regex: Regular expression for matching the parts of glob pattern.
- micromatch: Glob matching for javascript/node.js. A faster alternative to minimatch (10-45x faster on avg), with all the features you're used to using in your Grunt and gulp tasks.
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue
Tests
Install dev dependencies.
npm i -d && npm test
Author
Jon Schlinkert
License
Copyright (c) 2014-2015 Jon Schlinkert
Released under the MIT license
This file was generated by verb-cli on March 08, 2015.