UNPKG

foop

Version:

interfaces that describe their intentions.

43 lines (41 loc) 3.03 kB
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=