@scalar/api-client
Version:
the open source API testing client
29 lines (28 loc) • 1.19 kB
JavaScript
const f = (a, t = !1) => {
var c, l;
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"), i = r ? ((l = (c = o[r]) == null ? void 0 : c.toString().split(", ")) == null ? void 0 : l.map((e) => e.toLowerCase())) ?? [] : [];
return Object.keys(o).forEach((e) => {
i.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 n = e.replace(s, "");
o[e] && (o[n] = o[e], delete o[e]);
}
}), Object.keys(o).forEach((e) => {
const s = d(e);
e !== s && o[e] && (o[s] = o[e], delete o[e]);
}), Object.fromEntries(Object.entries(o).sort(([e], [s]) => e.localeCompare(s)));
}, d = (a) => a.split("-").map((t) => t.charAt(0).toUpperCase() + t.toLowerCase().slice(1)).join("-");
export {
d as formatHeaderKey,
f as normalizeHeaders
};