Nietzsche's Preposterous Moustache
Miss any of our Open RFC calls?Watch the recordings here! »

multimatch

5.0.0 • Public • Published

multimatch Build Status

Extends minimatch.match() with support for multiple patterns

Install

$ npm install multimatch

Usage

const multimatch = require('multimatch');
 
multimatch(['unicorn', 'cake', 'rainbows'], ['*', '!cake']);
//=> ['unicorn', 'rainbows']

See the tests for more usage examples and expected matches.

API

multimatch(paths, patterns, options?)

Returns an array of matching paths in the order of input paths.

paths

Type: string | string[]

Paths to match against.

patterns

Type: string | string[]

Globbing patterns to use. For example: ['*', '!cake']. See supported minimatch patterns.

options

Type: object

See the minimatch options.

How multiple patterns work

Positive patterns (e.g. foo or *) add to the results, while negative patterns (e.g. !foo) subtract from the results.

Therefore a lone negation (e.g. ['!foo']) will never match anything – use ['*', '!foo'] instead.

Globbing patterns

Just a quick overview.

  • * matches any number of characters, but not /
  • ? matches a single character, but not /
  • ** matches any number of characters, including /, as long as it's the only thing in a path part
  • {} allows for a comma-separated list of "or" expressions
  • ! at the beginning of a pattern will negate the match

Related

  • globby - Match against the filesystem instead of a list
  • matcher - Simple wildcard matching

Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.

Install

npm i multimatch

DownloadsWeekly Downloads

3,243,122

Version

5.0.0

License

MIT

Unpacked Size

6.03 kB

Total Files

5

Last publish

Collaborators

  • avatar