irongit

A better version of regex 101

insanely buggy

huncholanehuncholaneauthored
parent ec66850commit 4c71b9e87667382c4bb19edb2e5e76251f9813eaBrowse files

2 files changed, +6 -5

+0-1rec.js
@@ -46,4 +46,3 @@ const buildToRegexRecursion = (build, re) => {
4646 const d = parseBuilder(sample);
4747
4848 const b = buildToRegex(d);
49-console.log(b);
+6-4src/builder.js
@@ -44,18 +44,20 @@ const buildToRegex = (build, vars) => {
4444 const buildToRegexRecursion = (build, re, vars) => {
4545 if (!build?.length) return re;
4646 const val = build.shift();
47- if (Object.keys(vars).includes(val.regex)) val.regex = vars[val.regex];
47+ console.log(vars);
48+ if (vars && Object.keys(vars).includes(val.regex))
49+ val.regex = vars[val.regex];
4850 if (val.type === ":") {
4951 if (val.name) re += `(?P<${val.name}>${val.regex}`;
5052 else re += `(?:${val.regex}`;
51- if (val.children) re += buildToRegexRecursion(val.children, "");
53+ if (val.children) re += buildToRegexRecursion(val.children, "", vars);
5254 re += `)${val.optional}`;
5355 } else if (val.type === ">") {
5456 re += val.regex;
55- if (val.children) re += buildToRegexRecursion(val.children, "");
57+ if (val.children) re += buildToRegexRecursion(val.children, "", vars);
5658 }
5759
58- return buildToRegexRecursion(build, re);
60+ return buildToRegexRecursion(build, re, vars);
5961 };
6062
6163 export default parseBuilder;