deglob

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

Usage no npm install needed!

<script type="module">
  import deglob from 'https://cdn.skypack.dev/deglob';
</script>

README

deglob travis npm downloads javascript style guide

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. It seems useful outside of that tool, so I've attempted to extract it! :)

Install

npm install --save deglob

Usage

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:

"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 first.

License

ISC