36 lines
2.4 KiB
TypeScript
36 lines
2.4 KiB
TypeScript
import type {WorkflowI18n, WorkflowOutputTemplate, WorkflowPortTemplate} from '../../types/bot/workflow/metadata.ts';
|
|
|
|
export const describe = (name: string, description: string): WorkflowI18n[] => [{lang: 'zh-CN', name, description}];
|
|
export const output = (type: WorkflowOutputTemplate['type'], name: string, description: string): WorkflowOutputTemplate =>
|
|
({type, i18n: describe(name, description)});
|
|
export const port = (name: string, label: string, description: string): WorkflowPortTemplate =>
|
|
({name, i18n: describe(label, description)});
|
|
export const failure_port = port('failure', '失败', '参数解析、执行或节点超时失败时执行此分支。');
|
|
export const success_port = port('success', '成功', '节点执行成功后继续执行。');
|
|
export const result_output: WorkflowOutputTemplate = {
|
|
...output('object', '执行结果', '节点执行状态、输出和可选错误。'),
|
|
properties: {
|
|
status: output('string', '执行状态', 'success 或 failure。'),
|
|
output: output('json', '节点输出', '具体结构由对应节点描述定义。'),
|
|
execution: {...output('number', '执行序号', 'outputs 中保存的本次运行节点执行序号。'), optional: true},
|
|
node_id: {...output('string', '节点 ID', 'last_result 中提供的最近执行节点 ID。'), optional: true},
|
|
error: {...output('object', '错误', '失败时可能提供的错误详情。'), optional: true, properties: {
|
|
code: output('string', '错误代码', '用于异常分流的稳定错误代码。'),
|
|
message: output('string', '错误说明', '本次失败的可读说明。'),
|
|
node_id: output('string', '错误节点', '产生错误的节点实例 ID。'),
|
|
}},
|
|
},
|
|
};
|
|
export const edge_input_output: WorkflowOutputTemplate = {
|
|
...output('object', '入线数据', '一条连线传递的来源与执行结果。'),
|
|
properties: {
|
|
source: output('string', '来源节点', '上游节点实例 ID。'),
|
|
port: output('string', '来源出口', '上游节点选择的出口名称。'),
|
|
result: result_output,
|
|
},
|
|
};
|
|
export const event_args_output: WorkflowOutputTemplate = {
|
|
...output('array', '原始参数', '按事件参数顺序复制的安全 JSON 数据,不可序列化的参数为 null。'),
|
|
items: {...output('json', '参数值', '事件原始参数的 JSON 副本。'), nullable: true},
|
|
};
|