@scalar/api-client
Version:
the open source API testing client
28 lines (27 loc) • 1.12 kB
JavaScript
const n = (a, t = !1) => {
const o = Object.fromEntries(a);
t && [
"Access-Control-Allow-Credentials",
"Access-Control-Allow-Headers",
"Access-Control-Allow-Methods",
"Access-Control-Allow-Origin",
"Access-Control-Expose-Headers"
].map((s) => s.toLowerCase()).forEach((s) => delete o[s]);
const r = Object.keys(o).find((e) => e.toLowerCase() === "x-scalar-modified-headers"), c = r ? o[r]?.toString().split(", ")?.map((e) => e.toLowerCase()) ?? [] : [];
return Object.keys(o).forEach((e) => {
c.includes(e.toLowerCase()) && delete o[e];
}), r && delete o[r], Object.keys(o).forEach((e) => {
const s = /^x-scalar-original-/i;
if (s.test(e)) {
const l = e.replace(s, "");
o[e] && (o[l] = o[e], delete o[e]);
}
}), Object.keys(o).forEach((e) => {
const s = i(e);
e !== s && o[e] && (o[s] = o[e], delete o[e]);
}), Object.fromEntries(Object.entries(o).sort(([e], [s]) => e.localeCompare(s)));
}, i = (a) => a.split("-").map((t) => t.charAt(0).toUpperCase() + t.toLowerCase().slice(1)).join("-");
export {
i as formatHeaderKey,
n as normalizeHeaders
};