import { immutable } from '../../decorators'; import { ExpressionNode, LOGIC_TYPE } from '../LogicItem'; import { CallInterParam } from './CallInterParam'; /** * 调用逻辑 * @TODO: 当前类目前主要用于生成文档 */ export class CallLogic extends ExpressionNode { /** * 逻辑节点类型 */ @immutable() public readonly type: LOGIC_TYPE = LOGIC_TYPE.CallLogic; /** * Code */ @immutable() public readonly calleeCode: string = undefined; /** * 跳转页面参数 */ @immutable() public readonly params: Array = []; /** * 生成 JS 脚本 */ toScript() { const params = this.params.map((param) => param.toScript()); let paramsCode = params.join(','); if (paramsCode === ',') paramsCode = ''; else paramsCode = params.join(','); return `await this.${this.calleeCode}(${paramsCode})`; } }