Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

License

NotificationsYou must be signed in to change notification settings

JS-DevTools/file-path-filter

Repository files navigation

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

Cross-Platform CompatibilityBuild Status

Coverage StatusDependencies

npmLicenseBuy us a tree

Example

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",));

Installation

You can install File Path Filter vianpm.

npm install @jsdevtools/file-path-filter

Usage

filePathFilter(criteria)

  • criteria - The filter criteria. This can be any of the following:

    • A boolean.true will match all files.false will not match any files.
    • Aglob pattern. If the pattern starts with!, then it will be treated as anexclude pattern (see below)
    • Aregular expression
    • Afilter function that accepts a file path and returnstrue if the file should be matched
    • An array containing any combination of the above types
    • An object withinclude andexclude properties. Each of these properties can be any of the above types. File paths will be matched if they match any of theinclude criteria and do not match any of theexclude criteria.
  • return value - Afilter function that matches file paths that meet the specified criteria

createFilter(options, criteria)

  • options - An object with some or all of the following properties:

    • map - A function that maps filtered items to file paths
    • sep - A custom path separator, such as\ or/
  • criteria - The filter criteria. See thefilePathFilter for 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.

Filtering objects

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"));

Contributing

Contributions, enhancements, and bug-fixes are welcome!Open an issue on GitHub andsubmit 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 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.

Big Thanks To

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

Travis CISauceLabsCoveralls

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp