foop
Version:
interfaces that describe their intentions.
43 lines (41 loc) • 3.03 kB
JavaScript
var escapeStringRegExp = require('../string/escapeRegExp')
var isStringPrimitive = require('../is/stringPrimitive')
var isRegExp = require('../is/regexp')
var newRegExp = require('../construct/regexp')
var replaceEscapedStar = require('../string/escapedToDotStar')
// const pipe = require('../fp/pipeTwo')
/**
* @func
* @name toRegExp
* @memberOf cast
* @module to-regexp
* @extends escapeStringRegExp
*
* @param {string} x string to escape
* @return {RegExp} x -> RegExp
*
* @see deps/matcher
* @TODO flags as 2nd param?
*
* @example
*
* toRegExp('*')
* => '.*'
*
* toRegExp('eh')
* => 'eh'
*
*/
module.exports = function (x) {
if (isStringPrimitive(x)) {
return newRegExp(escapeStringRegExp(replaceEscapedStar(x)))
}
else if (isRegExp(x)) {
return x
}
else {
// always false regexp
return newRegExp('(?:)')
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9SZWdFeHAuanMiLCJzb3VyY2VzIjpbInRvUmVnRXhwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVzY2FwZVN0cmluZ1JlZ0V4cCA9IHJlcXVpcmUoJy4uL3N0cmluZy9lc2NhcGVSZWdFeHAnKVxuY29uc3QgaXNTdHJpbmdQcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pcy9zdHJpbmdQcmltaXRpdmUnKVxuY29uc3QgaXNSZWdFeHAgPSByZXF1aXJlKCcuLi9pcy9yZWdleHAnKVxuY29uc3QgbmV3UmVnRXhwID0gcmVxdWlyZSgnLi4vY29uc3RydWN0L3JlZ2V4cCcpXG5jb25zdCByZXBsYWNlRXNjYXBlZFN0YXIgPSByZXF1aXJlKCcuLi9zdHJpbmcvZXNjYXBlZFRvRG90U3RhcicpXG4vLyBjb25zdCBwaXBlID0gcmVxdWlyZSgnLi4vZnAvcGlwZVR3bycpXG5cbi8qKlxuICogQGZ1bmNcbiAqIEBuYW1lIHRvUmVnRXhwXG4gKiBAbWVtYmVyT2YgY2FzdFxuICogQG1vZHVsZSB0by1yZWdleHBcbiAqIEBleHRlbmRzIGVzY2FwZVN0cmluZ1JlZ0V4cFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB4IHN0cmluZyB0byBlc2NhcGVcbiAqIEByZXR1cm4ge1JlZ0V4cH0geCAtPiBSZWdFeHBcbiAqXG4gKiBAc2VlIGRlcHMvbWF0Y2hlclxuICogQFRPRE8gZmxhZ3MgYXMgMm5kIHBhcmFtP1xuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgdG9SZWdFeHAoJyonKVxuICogICAgPT4gJy4qJ1xuICpcbiAqICAgIHRvUmVnRXhwKCdlaCcpXG4gKiAgICA9PiAnZWgnXG4gKlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHggPT4ge1xuICBpZiAoaXNTdHJpbmdQcmltaXRpdmUoeCkpIHtcbiAgICByZXR1cm4gbmV3UmVnRXhwKGVzY2FwZVN0cmluZ1JlZ0V4cChyZXBsYWNlRXNjYXBlZFN0YXIoeCkpKVxuICB9XG4gIGVsc2UgaWYgKGlzUmVnRXhwKHgpKSB7XG4gICAgcmV0dXJuIHhcbiAgfVxuICBlbHNlIHtcbiAgICAvLyBhbHdheXMgZmFsc2UgcmVnZXhwXG4gICAgcmV0dXJuIG5ld1JlZ0V4cCgnKD86KScpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUM7QUFDNURBLEdBQUssQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUM7QUFDMURBLEdBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUN4Q0EsR0FBSyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUM7QUFDaERBLEdBQUssQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QmhFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBQSxDQUFDLENBQUEsQ0FBQyxBQUFHO0VBQ3BCLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDeEIsT0FBTyxTQUFTLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztHQUM1RDtPQUNJLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ3BCLE9BQU8sQ0FBQztHQUNUO09BQ0k7O0lBRUgsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDO0dBQ3pCO0NBQ0Y7In0=