test-openapi
Version:
Automated client requests
60 lines (38 loc) • 1.41 kB
JavaScript
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
;