test-openapi
Version:
Automated client requests
101 lines (61 loc) • 2.33 kB
JavaScript
;require("core-js/modules/es.array.iterator");Object.defineProperty(exports,"__esModule",{value:true});exports.getReportProps=void 0;var _lodash=require("lodash");
var _merge=require("../../../utils/merge.js");
var _types=require("../../../utils/types.js");
var _core=require("./core.js");
const getReportProps=function({task,context}){
const{titles,reportProps}=callReportFuncs({task,context});
const reportPropsA=(0,_core.addCoreReportProps)({reportProps,task});
const reportPropsB=reportPropsA.map(removeEmptyProps);
const reportPropsC=(0,_merge.merge)(...reportPropsB);
return{titles,reportProps:reportPropsC};
};exports.getReportProps=getReportProps;
const callReportFuncs=function({
task,
context,
context:{_plugins:plugins}})
{
const reportResult=plugins.map((plugin)=>
callReportFunc({plugin,context,task}));
const titles=reportResult.map(({title})=>title).filter(isDefinedTitle);
const reportProps=reportResult.map(props=>(0,_lodash.omit)(props,"title"));
return{titles,reportProps};
};
const callReportFunc=function({plugin:{report,name},context,task}){
const taskValue=task[name];
if(report===undefined){
return{[name]:taskValue};
}
const reportValue=getReportValue({report,context,taskValue});
if(!(0,_types.isObject)(reportValue)){
return{[name]:reportValue};
}
const{title,reportProps}=mergeReportValue({reportValue,taskValue});
if(hasNoReportProps({reportProps,taskValue})){
return{title};
}
return{title,[name]:reportProps};
};
const getReportValue=function({report,context,taskValue}){
const contextA=(0,_lodash.omit)(context,OMITTED_CONTEXT_PROPS);
const reportValue=report(taskValue,contextA);
return reportValue;
};
const OMITTED_CONTEXT_PROPS=["options","silent"];
const mergeReportValue=function({
reportValue:{title,...reportProps},
taskValue})
{
const reportPropsA={...reportProps,...taskValue,...reportProps};
const reportPropsB=removeEmptyProps(reportPropsA);
return{title,reportProps:reportPropsB};
};
const hasNoReportProps=function({reportProps,taskValue}){
return Object.keys(reportProps).length===0&&taskValue===undefined;
};
const isDefinedTitle=function(title){
return title!==undefined&&title.trim()!=="";
};
const removeEmptyProps=function(object){
return(0,_lodash.omitBy)(object,value=>value===undefined);
};
//# sourceMappingURL=main.js.map