UNPKG

@mintlify/validation

Version:

Validates mint.json files

31 lines (30 loc) 1.44 kB
import { v4 as uuidv4 } from 'uuid'; import { getObjectById } from './getObjectById.js'; import { mapSecurityRequirement } from './mapSecurityRequirement.js'; export const mapSecurityRequirements = ({ spec, refUuidMap, uuidObjectHashMap, hashedNodeMap, documentId, }) => { const securityRequirements = spec.security; if (!securityRequirements) return; const document = getObjectById({ uuidObjectHashMap, hashedNodeMap, id: documentId }); if (!document) return; // security requirements object = security: [{}, { 'A': [], 'B': [scopes], 'C': [scopes] }] // refmap = { '#/components/securitySchemes/A': uuid1, '#/components/securitySchemes/B': uuid2, '#/components/securitySchemes/C': uuid3 } // document.security = [uuid4, uuid5] // uuidObjectHashMap = { uuid4: hash1, uuid5: hash2 } // { hash1: {} } // { hash2: { 'A': { $ref: uuid1, scopes: [] }, 'B': { $ref: uuid2, scopes: [scopes] }, 'C': { $ref: uuid3, scopes: [scopes] } } } } securityRequirements.forEach((securityRequirement) => { // create uuid for each global security requirement const uuid = uuidv4(); mapSecurityRequirement({ security: securityRequirement, refUuidMap, uuidObjectHashMap, hashedNodeMap, uuid, }); // associate security requirement object with document document.security.push(uuid); }); };