MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / buildHeaderPresets

Function buildHeaderPresets

packages/plugins/openapi/src/sdk/preview.ts:323–381  ·  view source on GitHub ↗
(
  schemes: readonly SecurityScheme[],
  strategies: readonly AuthStrategy[],
)

Source from the content-addressed store, hash-verified

321// ---------------------------------------------------------------------------
322
323const buildHeaderPresets = (
324 schemes: readonly SecurityScheme[],
325 strategies: readonly AuthStrategy[],
326): HeaderPreset[] => {
327 const schemeMap = new Map(schemes.map((s) => [s.name, s]));
328
329 return strategies.flatMap((strategy) => {
330 const resolved = strategy.schemes
331 .map((name) => schemeMap.get(name))
332 .filter(Predicate.isNotUndefined);
333
334 if (resolved.length === 0) return [];
335
336 const headers: Record<string, string | null> = {};
337 const secretHeaders: string[] = [];
338 const labelParts: string[] = [];
339
340 for (const scheme of resolved) {
341 if (scheme.type === "http" && Option.getOrElse(scheme.scheme, () => "") === "bearer") {
342 headers["Authorization"] = null;
343 secretHeaders.push("Authorization");
344 labelParts.push("Bearer Token");
345 } else if (scheme.type === "http" && Option.getOrElse(scheme.scheme, () => "") === "basic") {
346 headers["Authorization"] = null;
347 secretHeaders.push("Authorization");
348 labelParts.push("Basic Auth");
349 } else if (scheme.type === "apiKey" && Option.getOrElse(scheme.in, () => "") === "header") {
350 const headerName = Option.getOrElse(scheme.headerName, () => scheme.name);
351 headers[headerName] = null;
352 secretHeaders.push(headerName);
353 labelParts.push(scheme.name);
354 } else if (scheme.type === "apiKey") {
355 labelParts.push(`${scheme.name} (${Option.getOrElse(scheme.in, () => "unknown")})`);
356 } else if (scheme.type === "oauth2" || scheme.type === "openIdConnect") {
357 return [];
358 } else {
359 labelParts.push(scheme.name);
360 }
361 }
362
363 if (Object.keys(headers).length === 0 && resolved.length > 0) {
364 return [
365 HeaderPreset.make({
366 label: labelParts.join(" + "),
367 headers: {},
368 secretHeaders: [],
369 }),
370 ];
371 }
372
373 return [
374 HeaderPreset.make({
375 label: labelParts.join(" + "),
376 headers,
377 secretHeaders,
378 }),
379 ];
380 });

Callers 1

preview.tsFile · 0.85

Calls 2

pushMethod · 0.80
getMethod · 0.65

Tested by

no test coverage detected