UNPKG

test-openapi

Version:
60 lines (38 loc) 1.41 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.removeOptionals=void 0;var _lodash=require("lodash"); const removeOptionals=function({params,call}){ const paramsA=removeTopLevel({params,call}); const paramsB=removeNested({params:paramsA,call}); return paramsB; };exports.removeOptionals=removeOptionals; const removeTopLevel=function({params,call}){ const paramsA=(0,_lodash.omitBy)(params,(param,key)=> isSkippedOptional({param,key,call})); const paramsB=(0,_lodash.mapValues)(paramsA,removeOptionalProp); return paramsB; }; const isSkippedOptional=function({param:{optional},key,call}){ return optional&&call[key]===undefined; }; const removeOptionalProp=function(param){ return(0,_lodash.omit)(param,"optional"); }; const removeNested=function({params,call}){ return(0,_lodash.mapValues)(params,(schema,key)=> removeNonRequired({schema,definedProps:call[key]})); }; const removeNonRequired=function({ schema:{properties,required=[],...schema}, definedProps={}}) { if(properties===undefined){ return schema; } const propertiesA=(0,_lodash.omitBy)( properties, (property,name)=> !required.includes(name)&&definedProps[name]===undefined); const propertiesB=(0,_lodash.mapValues)(propertiesA,(property,name)=> removeNonRequired({schema:property,definedProps:definedProps[name]})); return{...schema,properties:propertiesB}; }; //# sourceMappingURL=optional.js.map