typia
Version:
Superfast runtime validators with only one line
34 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports._httpQueryParseURLSearchParams = void 0;
const _httpQueryParseURLSearchParams = (input) => {
if (typeof input === "string") {
let url = false;
if (input.startsWith("?")) {
input = input.substring(1);
url = true;
}
else {
const index = input.indexOf("?");
if (index !== -1 && isUrlPrefix(input.substring(0, index))) {
input = input.substring(index + 1);
url = true;
}
else if (index === -1 && isExplicitUrlPrefix(input)) {
input = "";
url = true;
}
}
if (url) {
const fragment = input.indexOf("#");
if (fragment !== -1)
input = input.substring(0, fragment);
}
return new URLSearchParams(input);
}
return input;
};
exports._httpQueryParseURLSearchParams = _httpQueryParseURLSearchParams;
const isUrlPrefix = (prefix) => isExplicitUrlPrefix(prefix) || (prefix.length !== 0 && !/[=&]/.test(prefix));
const isExplicitUrlPrefix = (prefix) => /^[a-z][a-z\d+.-]*:/i.test(prefix) || /^(?:\/\/|\/|\.{1,2}\/)/.test(prefix);
//# sourceMappingURL=_httpQueryParseURLSearchParams.js.map