Socket
Socket
Sign inDemoInstall

ignore-walk

Package Overview
Dependencies
3
Maintainers
5
Versions
24
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ignore-walk

Nested/recursive `.gitignore`/`.npmignore` parsing and filtering.


Version published
Weekly downloads
9.8M
decreased by-0.05%
Maintainers
5
Install size
454 kB
Created
Weekly downloads
 

Package description

What is ignore-walk?

The ignore-walk npm package is a Node.js library used to create a list of files in a directory tree while honoring .ignore rules, similar to how tools like git and npm ignore files based on .gitignore or .npmignore files. It is particularly useful for applications that need to process file trees while excluding files that should be ignored according to specified patterns.

What are ignore-walk's main functionalities?

Walking a directory while respecting .ignore files

This feature allows you to walk through a directory and list all files that are not excluded by the ignore rules specified in .ignore files such as .gitignore. The function returns a promise that resolves with the list of files.

const IgnoreWalk = require('ignore-walk');

IgnoreWalk({
  path: './path/to/directory',
  ignoreFiles: ['.gitignore']
}).then(files => {
  console.log('Files:', files);
}).catch(err => {
  console.error('Error:', err);
});

Other packages similar to ignore-walk

Changelog

Source

6.0.4 (2023-11-29)

Bug Fixes

  • b587cc3 handling of nested unignores (#119) (@mohd-akram)
  • 493401a recursive directory ignore rules (#118) (@wraithgar, @LinqLover)
  • 0bb0972 #116 disallow child unignoring parent directory ignore (#116) (@mohd-akram)

Readme

Source

ignore-walk

Nested/recursive .gitignore/.npmignore parsing and filtering.

Walk a directory creating a list of entries, parsing any .ignore files met along the way to exclude files.

USAGE

const walk = require('ignore-walk')

// All options are optional, defaults provided.

// this function returns a promise, but you can also pass a cb
// if you like that approach better.
walk({
  path: '...', // root dir to start in. defaults to process.cwd()
  ignoreFiles: [ '.gitignore' ], // list of filenames. defaults to ['.ignore']
  includeEmpty: true|false, // true to include empty dirs, default false
  follow: true|false // true to follow symlink dirs, default false
}, callback)

// to walk synchronously, do it this way:
const result = walk.sync({ path: '/wow/such/filepath' })

If you want to get at the underlying classes, they're at walk.Walker and walk.WalkerSync.

OPTIONS

  • path The path to start in. Defaults to process.cwd()

  • ignoreFiles Filenames to treat as ignore files. The default is ['.ignore']. (This is where you'd put .gitignore or .npmignore or whatever.) If multiple ignore files are in a directory, then rules from each are applied in the order that the files are listed.

  • includeEmpty Set to true to include empty directories, assuming they are not excluded by any of the ignore rules. If not set, then this follows the standard git behavior of not including directories that are empty.

    Note: this will cause an empty directory to be included if it would contain an included entry, even if it would have otherwise been excluded itself.

    For example, given the rules * (ignore everything) and !/a/b/c (re-include the entry at /a/b/c), the directory /a/b will be included if it is empty.

  • follow Set to true to treat symbolically linked directories as directories, recursing into them. There is no handling for nested symlinks, so ELOOP errors can occur in some cases when using this option. Defaults to false.

Keywords

FAQs

Last updated on 29 Nov 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc