@scalar/api-client
Version:
the open source API testing client
56 lines (55 loc) • 1.49 kB
JavaScript
import { encode as n } from "js-base64";
const i = (c) => {
const s = {
headers: [],
queryString: [],
cookies: []
};
for (const e of c) {
if (e.type === "apiKey") {
const a = e["x-scalar-secret-token"] || "YOUR_SECRET_TOKEN";
if (!e.name)
continue;
const o = { name: e.name, value: a };
switch (e.in) {
case "header":
s.headers.push(o);
break;
case "query":
s.queryString.push(o);
break;
case "cookie":
s.cookies.push(o);
break;
}
continue;
}
if (e.type === "http") {
if (e.scheme === "basic") {
const a = e["x-scalar-secret-username"] || "", o = e["x-scalar-secret-password"] || "", r = `${a}:${o}`, t = r === ":" ? "username:password" : n(r);
s.headers.push({
name: "Authorization",
value: `Basic ${t}`
});
} else if (e.scheme === "bearer") {
const a = e["x-scalar-secret-token"] || "YOUR_SECRET_TOKEN";
s.headers.push({
name: "Authorization",
value: `Bearer ${a}`
});
}
continue;
}
if (e.type === "oauth2" && e.flows) {
const r = Object.values(e.flows).find((t) => t["x-scalar-secret-token"])?.["x-scalar-secret-token"] || "YOUR_SECRET_TOKEN";
s.headers.push({
name: "Authorization",
value: `Bearer ${r}`
});
}
}
return s;
};
export {
i as processSecuritySchemes
};