Distopico Vegan 9e639edc8d | 6 years ago | |
---|---|---|
.. | ||
gitignore.js | 6 years ago | |
index.js | 6 years ago | |
license | 6 years ago | |
package.json | 6 years ago | |
readme.md | 6 years ago |
User-friendly glob matching
Based on fast-glob
, but adds a bunch of useful features and a nicer API.
['foo*', '!foobar']
dir
→ dir/**/*
.gitignore
$ npm install globby
├── unicorn
├── cake
└── rainbow
const globby = require('globby');
(async () => {
const paths = await globby(['*', '!cake']);
console.log(paths);
//=> ['unicorn', 'rainbow']
})();
Returns a Promise<Array>
of matching paths.
Type: string
Array
See supported minimatch
patterns.
Type: Object
See the fast-glob
options in addition to the ones below.
Type: boolean
Array
Object
Default: true
If set to true
, globby
will automatically glob directories for you. If you define an Array
it will only glob files that matches the patterns inside the Array
. You can also define an Object
with files
and extensions
like below:
(async () => {
const paths = await globby('images', {
expandDirectories: {
files: ['cat', 'unicorn', '*.jpg'],
extensions: ['png']
}
});
console.log(paths);
//=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg']
})();
Note that if you set this option to false
, you won't get back matched directories unless you set nodir: false
.
Type: boolean
Default: false
Respect ignore patterns in .gitignore
files that apply to the globbed files.
Returns an Array
of matching paths.
Returns an Array<Object>
in the format {pattern: string, opts: Object}
, which can be passed as arguments to fast-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.
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.
This function is backed by node-glob
Returns a Promise<(path: string) => boolean>
indicating whether a given path is ignored via a .gitignore
file.
Takes cwd?: string
and ignore?: string[]
as options. .gitignore
files matched by the ignore config are not
used for the resulting filter function.
const {gitignore} = require('globby');
(async () => {
const isIgnored = await gitignore();
console.log(isIgnored('some/file'));
})();
Returns a (path: string) => boolean
indicating whether a given path is ignored via a .gitignore
file.
Takes the same options as globby.gitignore
.
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 matchVarious patterns and expected matches.
MIT © Sindre Sorhus