Flatten OpenAPI security object (#2818)

This commit is contained in:
Nolann B.
2025-02-13 16:44:06 +01:00
committed by GitHub
parent 727bde2d16
commit dda0cc635e
2 changed files with 22 additions and 1 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@gitbook/react-openapi': patch
---
Flatten OpenAPI security object
@@ -64,7 +64,7 @@ export async function fetchOpenAPIOperation(
}
const servers = 'servers' in schema ? (schema.servers ?? []) : [];
const security = operation.security ?? schema.security ?? [];
const security = flattenSecurities(operation.security ?? schema.security ?? []);
// Resolve securities
const securities: OpenAPIOperationData['securities'] = [];
@@ -179,3 +179,19 @@ function getOperationByPathAndMethod(
}
return pathObject[normalizedMethod];
}
/**
* Flatten security objects in case they are nested.
* @example [{bearerAuth:[], basicAuth:[]}] => [{ bearerAuth: [] }, { basicAuth: [] }]
*/
function flattenSecurities(security: OpenAPIV3.SecurityRequirementObject[]) {
if (!Array.isArray(security) || security.length === 0) {
return [];
}
return security.flatMap((securityObject) => {
return Object.entries(securityObject).map(([authType, config]) => ({
[authType]: config,
}));
});
}