Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
}
} else if (pattern$1 === "") {
return /* [] */0;
} else {
var match = $$String.contains_from(path$1, 1, /* "/" */47);
var match$1;
if (match !== 0) {
var nextUrlSlash = $$String.index_from(path$1, 1, /* "/" */47);
var urlItem = $$String.sub(path$1, 1, nextUrlSlash - 1 | 0);
match$1 = /* tuple */[
urlItem,
$$String.sub(path$1, nextUrlSlash, path$1.length - nextUrlSlash | 0)
];
} else {
match$1 = /* tuple */[
$$String.sub(path$1, 1, path$1.length - 1 | 0),
""
];
}
var match$2 = $$String.contains_from(pattern$1, 1, /* "/" */47);
var match$3;
if (match$2 !== 0) {
var nextPatternSlash = $$String.index_from(pattern$1, 1, /* "/" */47);
var patternItem = $$String.sub(pattern$1, 1, nextPatternSlash - 1 | 0);
match$3 = /* tuple */[
patternItem,
$$String.sub(pattern$1, nextPatternSlash, pattern$1.length - nextPatternSlash | 0)
];
} else {
match$3 = /* tuple */[
$$String.sub(pattern$1, 1, pattern$1.length - 1 | 0),
""
var urlItem = $$String.sub(path$1, 1, nextUrlSlash - 1 | 0);
match$1 = /* tuple */[
urlItem,
$$String.sub(path$1, nextUrlSlash, path$1.length - nextUrlSlash | 0)
];
} else {
match$1 = /* tuple */[
$$String.sub(path$1, 1, path$1.length - 1 | 0),
""
];
}
var match$2 = $$String.contains_from(pattern$1, 1, /* "/" */47);
var match$3;
if (match$2 !== 0) {
var nextPatternSlash = $$String.index_from(pattern$1, 1, /* "/" */47);
var patternItem = $$String.sub(pattern$1, 1, nextPatternSlash - 1 | 0);
match$3 = /* tuple */[
patternItem,
$$String.sub(pattern$1, nextPatternSlash, pattern$1.length - nextPatternSlash | 0)
];
} else {
match$3 = /* tuple */[
$$String.sub(pattern$1, 1, pattern$1.length - 1 | 0),
""
];
}
_pathsAndPatterns = /* :: */[
/* tuple */[
match$1[0],
match$3[0]
],
pathsAndPatterns
$$String.sub(path$1, 1, path$1.length - 1 | 0),
""
];
}
var match$2 = $$String.contains_from(pattern$1, 1, /* "/" */47);
var match$3;
if (match$2 !== 0) {
var nextPatternSlash = $$String.index_from(pattern$1, 1, /* "/" */47);
var patternItem = $$String.sub(pattern$1, 1, nextPatternSlash - 1 | 0);
match$3 = /* tuple */[
patternItem,
$$String.sub(pattern$1, nextPatternSlash, pattern$1.length - nextPatternSlash | 0)
];
} else {
match$3 = /* tuple */[
$$String.sub(pattern$1, 1, pattern$1.length - 1 | 0),
""
];
}
_pathsAndPatterns = /* :: */[
/* tuple */[
match$1[0],
match$3[0]
],
pathsAndPatterns
];
_pattern = match$3[1];
_path = match$1[1];
continue ;
}
};
if (match$1) {
var s = $$String.sub(patternHead, 1, patternHead.length - 1 | 0);
params[s] = pathHead;
_pathsAndPatterns = rest;
_search = s + ("=" + (pathHead + ("&" + search)));
continue ;
} else {
_pathsAndPatterns = rest;
continue ;
}
} else {
var match$2 = hasSearch(patternHead);
if (match$2) {
var s$1 = $$String.sub(patternHead, 1, patternHead.length - 1 | 0);
params[s$1] = pathHead;
var search$1 = "?" + (s$1 + ("=" + (pathHead + ("&" + search))));
return /* record */[
/* search */search$1,
/* hash */hash,
/* params */params
];
} else {
var search$2 = "?" + search;
return /* record */[
/* search */search$2,
/* hash */hash,
/* params */params
];
}
}
var pattern$1 = _pattern;
var path$1 = _path;
if (path$1 === "") {
if (pattern$1 === "") {
return pathsAndPatterns;
} else {
return /* [] */0;
}
} else if (pattern$1 === "") {
return /* [] */0;
} else {
var match = $$String.contains_from(path$1, 1, /* "/" */47);
var match$1;
if (match !== 0) {
var nextUrlSlash = $$String.index_from(path$1, 1, /* "/" */47);
var urlItem = $$String.sub(path$1, 1, nextUrlSlash - 1 | 0);
match$1 = /* tuple */[
urlItem,
$$String.sub(path$1, nextUrlSlash, path$1.length - nextUrlSlash | 0)
];
} else {
match$1 = /* tuple */[
$$String.sub(path$1, 1, path$1.length - 1 | 0),
""
];
}
var match$2 = $$String.contains_from(pattern$1, 1, /* "/" */47);
var match$3;
if (match$2 !== 0) {
var nextPatternSlash = $$String.index_from(pattern$1, 1, /* "/" */47);
var patternItem = $$String.sub(pattern$1, 1, nextPatternSlash - 1 | 0);
match$3 = /* tuple */[
function isPathCompliant(pathsAndPatterns) {
var normalizedPathsAndPatterns;
if (pathsAndPatterns) {
var match = pathsAndPatterns[0];
var path = match[0];
var match$1 = hasHash(path);
normalizedPathsAndPatterns = match$1 ? /* :: */[
/* tuple */[
$$String.sub(path, 0, match$1[0]),
match[1]
],
pathsAndPatterns[1]
] : pathsAndPatterns;
} else {
normalizedPathsAndPatterns = pathsAndPatterns;
}
return List.for_all((function (param) {
var pattern = param[1];
var match = hasSearch(pattern);
if (match) {
return /* true */1;
} else {
return +(param[0] === pattern);
}
}), normalizedPathsAndPatterns);
function of_substring$1(s, pos, len) {
return Caml_format.caml_int32_of_string($$String.sub(s, pos, len));
}
function of_substring$3(s, pos, len) {
return Caml_format.caml_nativeint_of_string($$String.sub(s, pos, len));
}
function of_substring(s, pos, len) {
return Caml_format.caml_int_of_string($$String.sub(s, pos, len));
}