MCPcopy
hub / github.com/GitbookIO/gitbook / extractOperationSecurityInfo

Function extractOperationSecurityInfo

packages/react-openapi/src/utils.ts:267–294  ·  view source on GitHub ↗
(args: {
    securityRequirement: OpenAPIV3.OperationObject['security'];
    securities: OpenAPIOperationData['securities'];
})

Source from the content-addressed store, hash-verified

265 * Extract security information for an operation based on its security requirements and the spec security schemes.
266 */
267export function extractOperationSecurityInfo(args: {
268 securityRequirement: OpenAPIV3.OperationObject['security'];
269 securities: OpenAPIOperationData['securities'];
270}): OperationSecurityInfo[] {
271 const { securityRequirement, securities } = args;
272 const securitiesMap = new Map(securities);
273
274 // When no security requirement include every schemes
275 if (!securityRequirement || securityRequirement.length === 0) {
276 return securities.map(([key, security]) => ({
277 key,
278 label: key,
279 schemes: [security],
280 }));
281 }
282
283 return securityRequirement.map((requirement, idx) => {
284 const schemeKeys = Object.keys(requirement);
285
286 return {
287 key: `security-${idx}`,
288 label: schemeKeys.join(' & '),
289 schemes: schemeKeys
290 .map((schemeKey) => securitiesMap.get(schemeKey))
291 .filter((s): s is OpenAPICustomSecurityScheme => s !== undefined),
292 };
293 });
294}

Callers 2

getSecurityHeadersFunction · 0.90
OpenAPISecuritiesFunction · 0.90

Calls 1

getMethod · 0.80

Tested by

no test coverage detected