- Notifications
You must be signed in to change notification settings - Fork1
Filters file paths using globs, regular expressions, or custom criteria
License
JS-DevTools/file-path-filter
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Filters file paths using globs, regular expressions, or custom criteria
constfilePathFilter=require("@jsdevtools/file-path-filter");constpaths=["/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 patternpaths.filter(filePathFilter("**/*.html"));// Exclude glob patterns with "!"paths.filter(filePathFilter("**/*.html","!**/index.html"));// Filter using a regular expressionpaths.filter(filePathFilter(/\.(ico|png)$/));// Filter using custom criteriapaths.filter(filePathFilter(path=>path.length===23));// Use any combination of filterspaths.filter(filePathFilter(["**/*.html","!**/index.html",/\.(ico|png)$/,path=>path.length===23]));// Explicitly specify include and exclude criteriapaths.filter(filePathFilter({include:["**/*.html",/\.(ico|png)$/,path=>path.length===23],exclude:"**/index.html",));
You can install File Path Filter vianpm.
npm install @jsdevtools/file-path-filter
criteria- The filter criteria. This can be any of the following:- A boolean.
truewill match all files.falsewill not match any files. - Aglob pattern. If the pattern starts with
!, then it will be treated as anexcludepattern (see below) - Aregular expression
- Afilter function that accepts a file path and returns
trueif the file should be matched - An array containing any combination of the above types
- An object with
includeandexcludeproperties. Each of these properties can be any of the above types. File paths will be matched if they match any of theincludecriteria and do not match any of theexcludecriteria.
- A boolean.
return value- Afilter function that matches file paths that meet the specified criteria
options- An object with some or all of the following properties:map- A function that maps filtered items to file pathssep- A custom path separator, such as\or/
criteria- The filter criteria. See thefilePathFilterfor details.return value- Afilter function that matches file paths that meet the specified criteria
ThecreateFilter function is an alternative to thefilePathFilter function that allows you to customize the behavior to suit your needs.
ThefilePathFilter function creates a function that filters arrays of strings, but what if you need to filter an array of objects instead? That's where themap option comes in handy. You can use it to map objects (or any other value) to file paths. Here's an example:
const{ createFilter}=require("@jsdevtools/file-path-filter");constpath=require("path");constfiles=[{dir:"/my/website",filename:"index.html"},{dir:"/my/website",filename:"contact.html"},{dir:"/my/website/blog",filename:"post-1.html"},{dir:"/my/website/blog",filename:"post-2.html"},];// A function to returns the path of each filefunctionmap(file){returnpath.join(file.dir,file.filename);}// Filter the file objects - return all HTML files except the blog postsfiles.filter(createFilter({ map},"**/*.html","!**/blog/*.html"));
Contributions, enhancements, and bug-fixes are welcome!Open an issue on GitHub andsubmit a pull request.
To build the project locally on your computer:
Clone this repo
git clone https://github.com/JS-DevTools/file-path-filter.gitInstall dependencies
npm installBuild the code
npm run buildRun the tests
npm test
File Path Filter is 100% free and open-source, under theMIT license. Use it however you want.
This package isTreeware. If you use it in production, then we ask that youbuy the world a tree to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.
Thanks to these awesome companies for their support of Open Source developers ❤
About
Filters file paths using globs, regular expressions, or custom criteria
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.