UNPKG

@scalar/api-client

Version:

the open source API testing client

56 lines (55 loc) 1.49 kB
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 };