@randajan/regex-parser
Version:
Convert between JavaScript RegExp and its string representation. Simple, safe and lightweight.
42 lines (40 loc) • 1.61 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.js
var index_exports = {};
__export(index_exports, {
rgxToStr: () => rgxToStr,
strToRgx: () => strToRgx
});
module.exports = __toCommonJS(index_exports);
var _regex = /^\/((?:\\.|[^\\/])+)\/([a-z]*)$/i;
var _regexEsc = /[.*+?^${}()|[\]\\]/g;
var _unsafeSlash = /(^|[^\\])\//g;
var rgxToStr = (rgx) => {
if (!(rgx instanceof RegExp)) throw new TypeError("Expected RegExp");
const pattern = rgx.source.replace(_unsafeSlash, "$1\\/");
return `/${pattern}/${rgx.flags}`;
};
var strToRgx = (str, strict = false) => {
if (typeof str !== "string") throw new TypeError("Expected string");
const m = str.match(_regex);
if (m) return new RegExp(m[1], m[2]);
if (strict) throw new SyntaxError("Invalid regex string");
return new RegExp(str.replace(_regexEsc, "\\$&"));
};
//# sourceMappingURL=index.js.map