Extends minimatch.match() with support for multiple patterns
306
stars
51
commits
JavaScript
primary language
Feb 20, 2026
updated
Extends
minimatch.match()with support for multiple patterns
npm install multimatch
import multimatch from 'multimatch';
multimatch(['unicorn', 'cake', 'rainbows'], ['*', '!cake']);
//=> ['unicorn', 'rainbows']
See the tests for more usage examples and expected matches.
Returns an array of matching paths in the order of input paths.
Type: string | string[]
The paths to match against.
Type: string | string[]
Globbing patterns to use. For example: ['*', '!cake']. See supported minimatch patterns.
Type: object
See the minimatch options.
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.
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 matchJavaScript
96.6%
TypeScript
3.4%
Extends minimatch.match() with support for multiple patterns
306
stars
51
commits
JavaScript
primary language
Feb 20, 2026
updated
Extends
minimatch.match()with support for multiple patterns
npm install multimatch
import multimatch from 'multimatch';
multimatch(['unicorn', 'cake', 'rainbows'], ['*', '!cake']);
//=> ['unicorn', 'rainbows']
See the tests for more usage examples and expected matches.
Returns an array of matching paths in the order of input paths.
Type: string | string[]
The paths to match against.
Type: string | string[]
Globbing patterns to use. For example: ['*', '!cake']. See supported minimatch patterns.
Type: object
See the minimatch options.
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.
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 matchJavaScript
96.6%
TypeScript
3.4%