diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
commit | cc97a4dd2a967e1c2273bd5f4c5f49a5bf2e2585 (patch) | |
tree | 92c5d88706a6ffc654d1b133618d357890e7096b /node_modules/matcher/index.js | |
parent | 3771b4d6b67b34c130f3a9a1a15f42deefdb2eda (diff) |
remove node_modules
Diffstat (limited to 'node_modules/matcher/index.js')
-rw-r--r-- | node_modules/matcher/index.js | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/node_modules/matcher/index.js b/node_modules/matcher/index.js deleted file mode 100644 index 33e4e1532..000000000 --- a/node_modules/matcher/index.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict'; -const escapeStringRegexp = require('escape-string-regexp'); - -const reCache = new Map(); - -function makeRe(pattern, options) { - const opts = Object.assign({ - caseSensitive: false - }, options); - - const cacheKey = pattern + JSON.stringify(opts); - - if (reCache.has(cacheKey)) { - return reCache.get(cacheKey); - } - - const negated = pattern[0] === '!'; - - if (negated) { - pattern = pattern.slice(1); - } - - pattern = escapeStringRegexp(pattern).replace(/\\\*/g, '.*'); - - const re = new RegExp(`^${pattern}$`, opts.caseSensitive ? '' : 'i'); - re.negated = negated; - reCache.set(cacheKey, re); - - return re; -} - -module.exports = (inputs, patterns, options) => { - if (!(Array.isArray(inputs) && Array.isArray(patterns))) { - throw new TypeError(`Expected two arrays, got ${typeof inputs} ${typeof patterns}`); - } - - if (patterns.length === 0) { - return inputs; - } - - const firstNegated = patterns[0][0] === '!'; - - patterns = patterns.map(x => makeRe(x, options)); - - const ret = []; - - for (const input of inputs) { - // If first pattern is negated we include everything to match user expectation - let matches = firstNegated; - - for (const pattern of patterns) { - if (pattern.test(input)) { - matches = !pattern.negated; - } - } - - if (matches) { - ret.push(input); - } - } - - return ret; -}; - -module.exports.isMatch = (input, pattern, options) => { - const re = makeRe(pattern, options); - const matches = re.test(input); - return re.negated ? !matches : matches; -}; |