node package manager

globby

globby Build Status

Extends glob with support for multiple patterns and exposes a Promise API

Install

$ npm install --save globby

Usage

├── unicorn
├── cake
└── rainbow
const globby = require('globby');
 
globby(['*', '!cake']).then(paths => {
    console.log(paths);
    //=> ['unicorn', 'rainbow'] 
});

API

globby(patterns, [options])

Returns a Promise for an array of matching paths.

globby.sync(patterns, [options])

Returns an array of matching paths.

globby.generateGlobTasks(patterns, [options])

Returns an array of objects in the format { pattern: string, opts: Object }, which can be passed as arguments to node-glob. This is useful for other globbing-related packages.

Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration.

globby.hasMagic(patterns, [options])

Returns a boolean of whether there are any special glob characters in the patterns.

Note that the options affect the results. If noext: true is set, then +(a|b) will not be considered a magic pattern. If the pattern has a brace expansion, like a/{b/c,x/y}, then that is considered magical, unless nobrace: true is set.

patterns

Type: string Array

See supported minimatch patterns.

options

Type: Object

See the node-glob options.

Globbing patterns

Just a quick overview.

  • * matches any number of characters, but not /
  • ? matches a single character, but not /
  • ** matches any number of characters, including /, as long as it's the only thing in a path part
  • {} allows for a comma-separated list of "or" expressions
  • ! at the beginning of a pattern will negate the match

Various patterns and expected matches.

Related

License

MIT © Sindre Sorhus