matchPatterns.js 387 B

123456789101112131415
  1. const { generateFullMatchRegExp } = require('.');
  2. const cache = new WeakMap();
  3. module.exports = function matchPatterns(patterns, text) {
  4. let handler = cache.get(patterns);
  5. if (handler) {
  6. return handler(text);
  7. }
  8. handler = str => {
  9. return patterns.map(generateFullMatchRegExp).some(item => item.test(str));
  10. };
  11. cache.set(patterns, handler);
  12. return handler(text);
  13. };