1. deglob
Take a list of glob patterns and return an array of file locations, respecting `.gitignore` and allowing for ignore patterns via `package.json`.
deglob
Package: deglob
Created by: flet
Last modified: Tue, 14 Jun 2022 23:35:14 GMT
Version: 4.0.1
License: ISC
Downloads: 581,856
Repository: https://github.com/flet/deglob

Install

npm install deglob
yarn add deglob

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

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code