UNPKG

@scalar/oas-utils

Version:

Open API spec and Yaml handling utilities

62 lines (61 loc) 1.87 kB
const processSecuritySchemes = (securitySchemes) => { const result = { headers: [], queryString: [], cookies: [] }; for (const scheme of securitySchemes) { if (scheme.type === "apiKey") { const value = scheme["x-scalar-secret-token"] || "YOUR_SECRET_TOKEN"; if (!scheme.name) { continue; } const param = { name: scheme.name, value }; switch (scheme.in) { case "header": result.headers.push(param); break; case "query": result.queryString.push(param); break; case "cookie": result.cookies.push(param); break; } continue; } if (scheme.type === "http") { if (scheme.scheme === "basic") { const username = scheme["x-scalar-secret-username"] || ""; const password = scheme["x-scalar-secret-password"] || ""; const value = `${username}:${password}`; const auth = value === ":" ? "username:password" : Buffer.from(value).toString("base64"); result.headers.push({ name: "Authorization", value: `Basic ${auth}` }); } else if (scheme.scheme === "bearer") { const token = scheme["x-scalar-secret-token"] || "YOUR_SECRET_TOKEN"; result.headers.push({ name: "Authorization", value: `Bearer ${token}` }); } continue; } if (scheme.type === "oauth2" && scheme.flows) { const flows = Object.values(scheme.flows); const flow = flows.find((f) => f["x-scalar-secret-token"]); const token = flow?.["x-scalar-secret-token"] || "YOUR_SECRET_TOKEN"; result.headers.push({ name: "Authorization", value: `Bearer ${token}` }); } } return result; }; export { processSecuritySchemes }; //# sourceMappingURL=process-security-schemes.js.map