Repository URL to install this package:
Version:
1.9.1-1486597190 ▾
|
.. |
index.js |
package.json |
README.md |
LICENSE |
Javascript module to match a string against a regular expression, glob, string, or function that takes the string as an argument and returns a truthy or falsy value. The matcher can also be an array of any or all of these. Useful for allowing a very flexible user-defined config to define things like file paths.
npm install anymatch --save
testString
for non-function matchers, while the entire array will be applied
as the arguments for function matchers.returnIndex = true
preserves original indexing. Behaves the same as Array.prototype.slice
(i.e.
includes array members up to, but not including endIndex).var anymatch = require('anymatch'); var matchers = [ 'path/to/file.js', 'path/anyjs/**/*.js', /foo.js$/, function (string) { return string.indexOf('bar') !== -1 && string.length > 10 } ]; anymatch(matchers, 'path/to/file.js'); // true anymatch(matchers, 'path/anyjs/baz.js'); // true anymatch(matchers, 'path/to/foo.js'); // true anymatch(matchers, 'path/to/bar.js'); // true anymatch(matchers, 'bar.js'); // false // returnIndex = true anymatch(matchers, 'foo.js', true); // 2 anymatch(matchers, 'path/anyjs/foo.js', true); // 1 // skip matchers anymatch(matchers, 'path/to/file.js', false, 1); // false anymatch(matchers, 'path/anyjs/foo.js', true, 2, 3); // 2 anymatch(matchers, 'path/to/bar.js', true, 0, 3); // -1
You can also pass in only your matcher(s) to get a curried function that has
already been bound to the provided matching criteria. This can be used as an
Array.prototype.filter
callback.
var matcher = anymatch(matchers); matcher('path/to/file.js'); // true matcher('path/anyjs/baz.js', true); // 1 matcher('path/anyjs/baz.js', true, 2); // -1 ['foo.js', 'bar.js'].filter(matcher); // ['foo.js']
See release notes page on GitHub
As of v1.2.0, anymatch uses micromatch for glob pattern matching. The glob matching behavior should be functionally equivalent to the commonly used minimatch library (aside from some fixed bugs and greater performance), so a major version bump wasn't merited. Issues with glob pattern matching should be reported directly to the micromatch issue tracker.