mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 15:45:13 +00:00
Flatten OpenAPI security object (#2818)
This commit is contained in:
@@ -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 servers = 'servers' in schema ? (schema.servers ?? []) : [];
|
||||||
const security = operation.security ?? schema.security ?? [];
|
const security = flattenSecurities(operation.security ?? schema.security ?? []);
|
||||||
|
|
||||||
// Resolve securities
|
// Resolve securities
|
||||||
const securities: OpenAPIOperationData['securities'] = [];
|
const securities: OpenAPIOperationData['securities'] = [];
|
||||||
@@ -179,3 +179,19 @@ function getOperationByPathAndMethod(
|
|||||||
}
|
}
|
||||||
return pathObject[normalizedMethod];
|
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,
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user