@lcap/asl
Version:
NetEase Application Specific Language
86 lines • 2.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.genCallInterfaceFromTempInterface = exports.genCallInterface = exports.getOptionalCallParamsOfInterface = exports.getRequiredCallParamsOfInterface = exports.getSelectedCallParamsOfInterface = void 0;
const __1 = require("../..");
/**
* 根据接口参数列表生成 CallInterParam 列表
* @param itface 接口
*/
function getCallParamsOfInterface(itface) {
const res = (itface?.logic?.params || []).map((param) => ({
level: __1.LEVEL_ENUM.param,
type: 'CallInterParam',
logicId: itface.logic.id,
callInterParam: `#/${itface.logic.id}/${param.id}`,
refTarget: param,
callInterParamValue: null,
}));
return res;
}
function getSelectedCallParamsOfInterface(itface, params = []) {
let res = getCallParamsOfInterface(itface).filter((item) => item.refTarget.required
&& params.every((param) => param.callInterParam !== `#/${item.refTarget.id}`));
res = [...params, ...res];
return res;
}
exports.getSelectedCallParamsOfInterface = getSelectedCallParamsOfInterface;
function getRequiredCallParamsOfInterface(itface) {
return getCallParamsOfInterface(itface).filter((item) => item.refTarget.required);
}
exports.getRequiredCallParamsOfInterface = getRequiredCallParamsOfInterface;
function getOptionalCallParamsOfInterface(itface) {
return getCallParamsOfInterface(itface).filter((item) => !item.refTarget.required);
}
exports.getOptionalCallParamsOfInterface = getOptionalCallParamsOfInterface;
/**
* 生成调用接口
* @param itface 接口实例
* @param params 输入参数
*/
function genCallInterface(itface, params = []) {
if (itface.entityId) {
const identifier = itface.logicId ? itface.logicId : itface.name;
return {
level: 'logicNode',
type: 'CallLogic',
label: '调用逻辑',
callee: identifier,
calleeCode: `callInterface_${identifier}`,
params,
};
}
const res = {
level: 'logicNode',
type: 'CallInterface',
label: '调用接口',
interfaceKey: '',
params,
};
if (itface) {
res.interfaceKey = itface.key;
}
return res;
}
exports.genCallInterface = genCallInterface;
exports.default = genCallInterface;
function genCallInterfaceFromTempInterface(itface, params = []) {
if (itface.entityId) {
return {
level: 'logicNode',
type: 'CallLogic',
label: '调用逻辑',
callee: itface.name,
calleeCode: 'callInterface_',
params,
};
}
return {
level: 'logicNode',
type: 'CallInterface',
label: '调用接口',
interfaceKey: itface.name,
params,
};
}
exports.genCallInterfaceFromTempInterface = genCallInterfaceFromTempInterface;
//# sourceMappingURL=genCallInterface.js.map