ahmadnassri/glob-promise

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Promise version of glob

Match files using the patterns the shell uses, like stars and stuff.

[![license][license-img]][license-url]
[![release][release-img]][release-url]
[![semantic][semantic-img]][semantic-url]

> ***Note**: This is just a [`Promise`][] wrapped version of [`glob`][]*

> \[!IMPORTANT\]  
> [Glob][`glob`] has native Promise support as of `v9.0.0`, please use it directly.
> I will not issue a deprecation notice on this package, because I can't deal with the volume of angry tickets that will follow.

## Install

``` bash
npm install glob-promise glob
```

###### NOTE

[`glob`][] is set as a `peerDependency` in [`package.json`][]

- `npm` \>= 7 will automatically install `peerDependencies`
- `npm` \<= 6 will **not** automatically install `peerDependencies`.

You will need to manually add `glob` as a dependency to your project for `glob-promise` to work.

## API

### `glob(pattern [, options])`

Alias for `glob.promise`

### `glob.promise(pattern [, options])`

*pattern*: `String` (glob pattern)
*options*: `Object` or `String`
Return: `Object` ([Promise][`Promise`])

When it finishes, it will be [*fulfilled*][] with an `Array` of filenames as its first argument.

When it fails to read the files, it will be [*rejected*][] with an error as its first argument.

``` js
glob('**/*')
  .then(function(contents) {
    contents; //=> ['lorem', 'ipsum', 'dolor']
  });

glob('{foo,bar.baz}.txt', { nobrace: true })
  .then(function(contents) {
    contents; //=> []
  });
```

### `glob.glob(pattern [, options], cb)`

> see [`glob`][1]

### `glob.sync(pattern [, options])`

> see [`glob.sync()`][]

### `glob.hasMagic(pattern, [options])`

> see [`glob.hasMagic()`][]

### `Class: glob.Glob`

> see [`Glob`][2]

#### options

The option object will be directly passed to [glob][].

  [`Promise`]: http://promisesaplus.com/
  [`glob`]: https://github.com/isaacs/node-glob
  [`package.json`]: package.json
  [*fulfilled*]: http://promisesaplus.com/#point-26
  [*rejected*]: http://promisesaplus.com/#point-30
  [1]: https://github.com/isaacs/node-glob#globpattern-options-cb
  [`glob.sync()`]: https://github.com/isaacs/node-glob#globsyncpattern-options
  [`glob.hasMagic()`]: https://github.com/isaacs/node-glob#globhasmagicpattern-options
  [2]: https://github.com/isaacs/node-glob#class-globglob
  [glob]: https://github.com/isaacs/node-glob#options

----
> Author: [Ahmad Nassri](https://www.ahmadnassri.com/) &bull;
> Twitter: [@AhmadNassri](https://twitter.com/AhmadNassri)

[license-url]: LICENSE
[license-img]: https://badgen.net/github/license/ahmadnassri/node-glob-promise

[release-url]: https://github.com/ahmadnassri/node-glob-promise/releases
[release-img]: https://badgen.net/github/release/ahmadnassri/node-glob-promise

[semantic-url]: https://github.com/ahmadnassri/node-glob-promise/actions?query=workflow%3Arelease
[semantic-img]: https://badgen.net/badge/📦/semantically%20released/blue