An open API service indexing awesome lists of open source software.

https://github.com/standard/deglob

:open_file_folder: Take a list of glob patterns and return an array of file locations, respecting `.gitignore` and allowing for ignore patterns via `package.json`.
https://github.com/standard/deglob

glob glob-pattern javascript nodejs patterns

Last synced: about 1 month ago
JSON representation

:open_file_folder: Take a list of glob patterns and return an array of file locations, respecting `.gitignore` and allowing for ignore patterns via `package.json`.

Awesome Lists containing this project

README

          

# deglob [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]

[travis-image]: https://img.shields.io/travis/standard/deglob/master.svg
[travis-url]: https://travis-ci.org/standard/deglob
[npm-image]: https://img.shields.io/npm/v/deglob.svg
[npm-url]: https://npmjs.org/package/deglob
[downloads-image]: https://img.shields.io/npm/dm/deglob.svg
[downloads-url]: https://npmjs.org/package/deglob
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
[standard-url]: https://standardjs.com

Take a list of glob patterns and return an array of file locations, respecting `.gitignore` and allowing for ignore patterns via `package.json`.

Giant swaths of this code were extracted from [standard](https://standardjs.com). It seems useful outside of that tool, so I've attempted to extract it! :)

## Install

```
npm install --save deglob
```

## Usage

```js
var deglob = require('deglob')

deglob(['**/*.js'], function(err, files) {
files.forEach(function(file) {
console.log('found file ' + file)
})
})

// pass in some options to customize!

var path = require('path')
var opts = {
cwd: path.join(__dirname, 'someDir'),
useGitIgnore: false,
usePackageJson: false
}

deglob(['**/*.js'], opts, function(err, files) {
files.forEach(function(file) {
console.log('found file ' + file)
})
})
```

## Ignoring files in package.json
`deglob` will look for a `package.json` file by default and use any ignore patterns defined.

To define patterns in package.json add somthing like this:
```js
"config": {
"ignore": ['**/*.bad']
}
```
If you do not fancy the `config` key, provide a different one using the `configKey` option.

## Options
Option | Default | Description
-------------- | -------- | -------
useGitIgnore | true | Turn on/off allowing ignore patterns via `.gitignore`
usePackageJson | true | Turn on/off allowing ignore patterns via `package.json` config.
configKey | 'config' | This is the parent key in `package.json` to look for the `ignore` attribute.
gitIgnoreFile | '.gitignore' | Name of the `.gitignore` file look for (probably best to leave it default)
ignore | [] | List of additional ignore patterns to use
cwd | process.cwd() | This is the working directory to start the deglobbing

## Contributing

Contributions welcome! Please read the [contributing guidelines](CONTRIBUTING.md) first.

## License

[ISC](LICENSE.md)