UNPKG

to-regexp

Version:

Convert globs, strings, and arrays to a single RegExp.

85 lines (74 loc) 1.88 kB
// Generated by CoffeeScript 1.10.0 var endOfRegExp, globToRegExp, isArray, isRegExp, isRegExpString, isString, stringToRegExp, toRegExp; globToRegExp = require('glob-to-regexp'); isArray = require('is-array'); isRegExp = require('is-regexp'); isString = require('is-string'); endOfRegExp = /\/([gimy]+)?$/; isRegExpString = function(s) { return (s.charAt(0)) === '/' && (endOfRegExp.test(s)); }; stringToRegExp = function(s) { var flags, index, match; match = endOfRegExp.exec(s); flags = match[1]; index = match.index; return new RegExp(s.substring(1, index), flags); }; toRegExp = function(s) { s = s.trim(); if (!s) { return; } if (isRegExpString(s)) { return stringToRegExp(s); } else { return globToRegExp(s, { extended: true }); } }; module.exports = function(patterns, opts) { var i, len, pattern, re, regexps; if (opts == null) { opts = {}; } if (isString(patterns)) { return toRegExp(patterns); } if (isRegExp(patterns)) { return patterns; } if (patterns == null) { return; } if (!isArray(patterns)) { throw new Error("Expected Array, RegExp or String found '" + patterns + "'"); } regexps = []; for (i = 0, len = patterns.length; i < len; i++) { pattern = patterns[i]; if (isString(pattern)) { if (pattern.trim()) { regexps.push(toRegExp(pattern)); } } else if (isRegExp(pattern)) { regexps.push(pattern); } else { throw new Error("Expected RegExp or String found '" + pattern + "'"); } } if (!(regexps.length > 0)) { return; } return new RegExp(((function() { var j, len1, results; results = []; for (j = 0, len1 = regexps.length; j < len1; j++) { re = regexps[j]; results.push(re.source); } return results; })()).join('|')); }; //# sourceMappingURL=index.js.map