diff options
Diffstat (limited to 'node_modules/globby/readme.md')
-rw-r--r-- | node_modules/globby/readme.md | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/node_modules/globby/readme.md b/node_modules/globby/readme.md new file mode 100644 index 0000000..9b6b7b5 --- /dev/null +++ b/node_modules/globby/readme.md @@ -0,0 +1,156 @@ +# globby [![Build Status](https://travis-ci.org/sindresorhus/globby.svg?branch=master)](https://travis-ci.org/sindresorhus/globby) + +> User-friendly glob matching + +Based on [`fast-glob`](https://github.com/mrmlnc/fast-glob), but adds a bunch of useful features and a nicer API. + + +## Features + +- Promise API +- Multiple patterns +- Negated patterns: `['foo*', '!foobar']` +- Expands directories: `dir` → `dir/**/*` +- Supports `.gitignore` + + +## Install + +``` +$ npm install globby +``` + + +## Usage + +``` +├── unicorn +├── cake +└── rainbow +``` + +```js +const globby = require('globby'); + +(async () => { + const paths = await globby(['*', '!cake']); + + console.log(paths); + //=> ['unicorn', 'rainbow'] +})(); +``` + + +## API + +### globby(patterns, [options]) + +Returns a `Promise<Array>` of matching paths. + +#### patterns + +Type: `string` `Array` + +See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). + +#### options + +Type: `Object` + +See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options) in addition to the ones below. + +##### expandDirectories + +Type: `boolean` `Array` `Object`<br> +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: + +```js +(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`. + +##### gitignore + +Type: `boolean`<br> +Default: `false` + +Respect ignore patterns in `.gitignore` files that apply to the globbed files. + +### globby.sync(patterns, [options]) + +Returns an `Array` of matching paths. + +### globby.generateGlobTasks(patterns, [options]) + +Returns an `Array<Object>` in the format `{pattern: string, opts: Object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/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. + +### 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. + +This function is backed by [`node-glob`](https://github.com/isaacs/node-glob#globhasmagicpattern-options) + +### globby.gitignore([options]) + +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. + +```js +const {gitignore} = require('globby'); + +(async () => { + const isIgnored = await gitignore(); + console.log(isIgnored('some/file')); +})(); +``` + +### globby.gitignore.sync([options]) + +Returns a `(path: string) => boolean` indicating whether a given path is ignored via a `.gitignore` file. + +Takes the same options as `globby.gitignore`. + + +## 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.](https://github.com/sindresorhus/multimatch/blob/master/test/test.js) + + +## Related + +- [multimatch](https://github.com/sindresorhus/multimatch) - Match against a list instead of the filesystem +- [matcher](https://github.com/sindresorhus/matcher) - Simple wildcard matching +- [del](https://github.com/sindresorhus/del) - Delete files and directories +- [make-dir](https://github.com/sindresorhus/make-dir) - Make a directory and its parents if needed + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) |