Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 54c0fe6

Browse files
author
Nicolas Dorseuil
committed
make sure parameters are array
1 parent a2720ac commit 54c0fe6

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

‎packages/react-openapi/src/OpenAPICodeSample.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,11 @@ function generateCodeSamples(props: {
6666
const searchParams = new URLSearchParams();
6767
const headersObject: { [k: string]: string } = {};
6868

69-
data.operation.parameters?.forEach((param) => {
69+
// The parser can sometimes returns invalid parameters (an object instead of an array).
70+
// It should get fixed in scalar, but in the meantime we just ignore the parameters in that case.
71+
const params = Array.isArray(data.operation.parameters) ? data.operation.parameters : [];
72+
73+
params.forEach((param) => {
7074
if (!param) {
7175
return;
7276
}

‎packages/react-openapi/src/OpenAPISpec.tsx

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,19 +117,22 @@ function getParameterGroupName(paramIn: string, context: OpenAPIClientContext):
117117
/** Deduplicate parameters by name and in.
118118
* Some specs have both parameters define at path and operation level.
119119
* We only want to display one of them.
120+
* Parameters can have the wrong type (object instead of array) sometimes, we just return an empty array in that case.
120121
*/
121122
function deduplicateParameters(parameters: OpenAPI.Parameters): OpenAPI.Parameters {
122123
const seen = new Set();
123124

124-
return parameters.filter((param) => {
125-
const key = `${param.name}:${param.in}`;
125+
return Array.isArray(parameters)
126+
? parameters.filter((param) => {
127+
const key = `${param.name}:${param.in}`;
126128

127-
if (seen.has(key)) {
128-
return false;
129-
}
129+
if (seen.has(key)) {
130+
return false;
131+
}
130132

131-
seen.add(key);
133+
seen.add(key);
132134

133-
return true;
134-
});
135+
return true;
136+
})
137+
: [];
135138
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /