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

Function extractParameters

packages/plugins/openapi/src/sdk/extract.ts:66–98  ·  view source on GitHub ↗
(
  pathItem: PathItemObject,
  operation: OperationObject,
  r: DocResolver,
)

Source from the content-addressed store, hash-verified

64// ---------------------------------------------------------------------------
65
66const extractParameters = (
67 pathItem: PathItemObject,
68 operation: OperationObject,
69 r: DocResolver,
70): OperationParameter[] => {
71 const merged = new Map<string, ParameterObject>();
72
73 for (const raw of pathItem.parameters ?? []) {
74 const p = r.resolve<ParameterObject>(raw);
75 if (!p) continue;
76 merged.set(`${p.in}:${p.name}`, p);
77 }
78 for (const raw of operation.parameters ?? []) {
79 const p = r.resolve<ParameterObject>(raw);
80 if (!p) continue;
81 merged.set(`${p.in}:${p.name}`, p);
82 }
83
84 return [...merged.values()]
85 .filter((p) => VALID_PARAM_LOCATIONS.has(p.in))
86 .map((p) =>
87 OperationParameter.make({
88 name: p.name,
89 location: p.in as ParameterLocation,
90 required: p.in === "path" ? true : p.required === true,
91 schema: Option.fromNullishOr(p.schema),
92 style: Option.fromNullishOr(p.style),
93 explode: Option.fromNullishOr(p.explode),
94 allowReserved: Option.fromNullishOr("allowReserved" in p ? p.allowReserved : undefined),
95 description: Option.fromNullishOr(p.description),
96 }),
97 );
98};
99
100// ---------------------------------------------------------------------------
101// Request body extraction

Callers 4

extract.tsFile · 0.85
streamOperationBindingsFunction · 0.85
streamPreviewOperationsFunction · 0.85

Calls 3

resolveMethod · 0.80
valuesMethod · 0.80
setMethod · 0.65

Tested by

no test coverage detected