Files
med-notes/.pnpm-store/v10/files/27/36b0598b5905427b3e8ddc57cacf99efc51e0a2f51150a3f7bb987d12fc18021c7056a5cf54a5b721baa669815c8b746b6cce22c65e550a97f7c05abb96519
2025-05-09 05:30:08 +02:00

62 lines
1.7 KiB
Plaintext

"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const qss = require("./qss.cjs");
const defaultParseSearch = parseSearchWith(JSON.parse);
const defaultStringifySearch = stringifySearchWith(
JSON.stringify,
JSON.parse
);
function parseSearchWith(parser) {
return (searchStr) => {
if (searchStr.substring(0, 1) === "?") {
searchStr = searchStr.substring(1);
}
const query = qss.decode(searchStr);
for (const key in query) {
const value = query[key];
if (typeof value === "string") {
try {
query[key] = parser(value);
} catch (err) {
}
}
}
return query;
};
}
function stringifySearchWith(stringify, parser) {
function stringifyValue(val) {
if (typeof val === "object" && val !== null) {
try {
return stringify(val);
} catch (err) {
}
} else if (typeof val === "string" && typeof parser === "function") {
try {
parser(val);
return stringify(val);
} catch (err) {
}
}
return val;
}
return (search) => {
search = { ...search };
Object.keys(search).forEach((key) => {
const val = search[key];
if (typeof val === "undefined" || val === void 0) {
delete search[key];
} else {
search[key] = stringifyValue(val);
}
});
const searchStr = qss.encode(search).toString();
return searchStr ? `?${searchStr}` : "";
};
}
exports.defaultParseSearch = defaultParseSearch;
exports.defaultStringifySearch = defaultStringifySearch;
exports.parseSearchWith = parseSearchWith;
exports.stringifySearchWith = stringifySearchWith;
//# sourceMappingURL=searchParams.cjs.map