File Path Filter

Filters file paths using globs, regular expressions, or custom criteria

File Path Filter

Filters file paths using globs, regular expressions, or custom criteria

Cross-Platform Compatibility Build Status

Coverage Status Dependencies

npm License

Example

const filePathFilter = require("file-path-filter");
const paths = [
  "/some/path/index.html",
  "/some/path/contact.html",
  "/some/path/about.html",
  "/some/path/favicon.ico",
  "/some/path/img/logo.png",
];

// Filter using a glob pattern
paths.filter(filePathFilter("**/*.html"));

// Exclude glob patterns with "!"
paths.filter(filePathFilter("**/*.html", "!**/index.html"));

// Filter using a regular expression
paths.filter(filePathFilter(/\.(ico|png)$/));

// Filter using custom criteria
paths.filter(filePathFilter(path => path.length === 23));

// Use any combination of filters
paths.filter(filePathFilter([
  "**/*.html",
  "!**/index.html",
  /\.(ico|png)$/,
  path => path.length === 23
]));

// Explicitly specify include and exclude criteria
paths.filter(filePathFilter({
  include:  [
    "**/*.html",
    /\.(ico|png)$/,
    path => path.length === 23
  ],
  exclude: "**/index.html",
));

Installation

You can install file-path-filter via npm.

npm install file-path-filter

Usage

filePathFilter(criteria)

Contributing

Contributions, enhancements, and bug-fixes are welcome! File an issue on GitHub and submit a pull request.

Building

To build the project locally on your computer:

  1. Clone this repo
    git clone https://github.com/JS-DevTools/file-path-filter.git

  2. Install dependencies
    npm install

  3. Build the code
    npm run build

  4. Run the tests
    npm test

License

File Path Filter is 100% free and open-source, under the MIT license. Use it however you want.

Big Thanks To

Thanks to these awesome companies for their support of Open Source developers ❤

Travis CI SauceLabs Coveralls