UNPKG

test-openapi

Version:
64 lines (45 loc) 1.98 kB
"use strict";require("core-js/modules/es.array.flat-map");require("core-js/modules/es.array.iterator");require("core-js/modules/es.array.unscopables.flat-map");Object.defineProperty(exports,"__esModule",{value:true});exports.getSecParams=void 0;var _lodash=require("lodash"); var _error=require("../../../../../errors/error.js"); var _location=require("../../../../../utils/location.js"); var _in_to_location=require("./in_to_location"); const getSecParams=function({ spec:{securityDefinitions,security:apiSecurity=[]}, operation:{security=apiSecurity}}) { const secRefs=getSecRefs({security}); const secParams=secRefs.map(([secName,scopes])=> getSecParam({secName,scopes,securityDefinitions})); const secParamsA=Object.assign({},...secParams); return secParamsA; };exports.getSecParams=getSecParams; const getSecRefs=function({security}){ const securityA=security.flatMap(Object.entries); const securityB=(0,_lodash.uniqBy)(securityA,JSON.stringify); return securityB; }; const getSecParam=function({secName,scopes,securityDefinitions}){ const securityDef=securityDefinitions[secName]; const securityDefA=normalizeSecurityDef({securityDef,secName,scopes}); return securityDefA; }; const normalizeSecurityDef=function({securityDef,secName,scopes}){ const handler=getSecParamHandler({securityDef,secName}); const secParam=handler({...securityDef,scopes}); return secParam; }; const getSecParamHandler=function({securityDef:{type},secName}){ const handler=SECURITY_DEFS[type]; if(handler!==undefined){ return handler; } throw new _error.TestOpenApiError( `In 'securityDefinitions.${secName}', security definition has type '${type}' but this has not been implemented yet`); }; const getDefApiKey=function({name,in:paramIn}){ const location=_in_to_location.IN_TO_LOCATION[paramIn]; const key=(0,_location.locationToKey)({name,location}); return{[key]:{type:"string",optional:true}}; }; const SECURITY_DEFS={ apiKey:getDefApiKey}; //# sourceMappingURL=security.js.map