Merge branch 'feat/new-workflow' of github.com:fudiwei/certimate into next
This commit is contained in:
@@ -3,8 +3,11 @@ import { type WorkflowModel } from "./workflow";
|
||||
export interface CertificateModel extends BaseModel {
|
||||
source: string;
|
||||
subjectAltNames: string;
|
||||
serialNumber: string;
|
||||
certificate: string;
|
||||
privateKey: string;
|
||||
issuer: string;
|
||||
keyAlgorithm: string;
|
||||
effectAt: ISO8601String;
|
||||
expireAt: ISO8601String;
|
||||
workflowId: string;
|
||||
|
||||
@@ -122,6 +122,7 @@ export type WorkflowNodeConfigForStart = {
|
||||
export type WorkflowNodeConfigForApply = {
|
||||
domains: string;
|
||||
contactEmail: string;
|
||||
challengeType: string;
|
||||
provider: string;
|
||||
providerAccessId: string;
|
||||
providerConfig?: Record<string, unknown>;
|
||||
@@ -276,21 +277,21 @@ export const updateNode = (node: WorkflowNode, targetNode: WorkflowNode) => {
|
||||
});
|
||||
};
|
||||
|
||||
export const addNode = (node: WorkflowNode, preId: string, targetNode: WorkflowNode) => {
|
||||
export const addNode = (node: WorkflowNode, previousNodeId: string, targetNode: WorkflowNode) => {
|
||||
return produce(node, (draft) => {
|
||||
let current = draft;
|
||||
while (current) {
|
||||
if (current.id === preId && targetNode.type !== WorkflowNodeType.Branch && targetNode.type !== WorkflowNodeType.ExecuteResultBranch) {
|
||||
if (current.id === previousNodeId && targetNode.type !== WorkflowNodeType.Branch && targetNode.type !== WorkflowNodeType.ExecuteResultBranch) {
|
||||
targetNode.next = current.next;
|
||||
current.next = targetNode;
|
||||
break;
|
||||
} else if (current.id === preId && (targetNode.type === WorkflowNodeType.Branch || targetNode.type === WorkflowNodeType.ExecuteResultBranch)) {
|
||||
} else if (current.id === previousNodeId && (targetNode.type === WorkflowNodeType.Branch || targetNode.type === WorkflowNodeType.ExecuteResultBranch)) {
|
||||
targetNode.branches![0].next = current.next;
|
||||
current.next = targetNode;
|
||||
break;
|
||||
}
|
||||
if (current.type === WorkflowNodeType.Branch || current.type === WorkflowNodeType.ExecuteResultBranch) {
|
||||
current.branches = current.branches!.map((branch) => addNode(branch, preId, targetNode));
|
||||
current.branches = current.branches!.map((branch) => addNode(branch, previousNodeId, targetNode));
|
||||
}
|
||||
current = current.next as WorkflowNode;
|
||||
}
|
||||
@@ -382,15 +383,15 @@ export const removeBranch = (node: WorkflowNode, branchNodeId: string, branchInd
|
||||
});
|
||||
};
|
||||
|
||||
// 1 个分支的节点,不应该能获取到相邻分支上节点的输出
|
||||
export const getWorkflowOutputBeforeId = (node: WorkflowNode, id: string, type: string): WorkflowNode[] => {
|
||||
export const getWorkflowOutputBeforeId = (root: WorkflowNode, nodeId: string, type: string): WorkflowNode[] => {
|
||||
// 1 个分支的节点,不应该能获取到相邻分支上节点的输出
|
||||
const output: WorkflowNode[] = [];
|
||||
|
||||
const traverse = (current: WorkflowNode, output: WorkflowNode[]) => {
|
||||
if (!current) {
|
||||
return false;
|
||||
}
|
||||
if (current.id === id) {
|
||||
if (current.id === nodeId) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -422,7 +423,7 @@ export const getWorkflowOutputBeforeId = (node: WorkflowNode, id: string, type:
|
||||
return traverse(current.next as WorkflowNode, output);
|
||||
};
|
||||
|
||||
traverse(node, output);
|
||||
traverse(root, output);
|
||||
return output;
|
||||
};
|
||||
|
||||
@@ -446,21 +447,3 @@ export const isAllNodesValidated = (node: WorkflowNode): boolean => {
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
export const getExecuteMethod = (node: WorkflowNode): { trigger: string; triggerCron: string } => {
|
||||
if (node.type === WorkflowNodeType.Start) {
|
||||
const config = node.config as WorkflowNodeConfigForStart;
|
||||
return {
|
||||
trigger: config.trigger ?? "",
|
||||
triggerCron: config.triggerCron ?? "",
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
trigger: "",
|
||||
triggerCron: "",
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { WorkflowModel } from "./workflow";
|
||||
import { type WorkflowModel } from "./workflow";
|
||||
|
||||
export interface WorkflowRunModel extends BaseModel {
|
||||
workflowId: string;
|
||||
@@ -16,13 +16,13 @@ export interface WorkflowRunModel extends BaseModel {
|
||||
export type WorkflowRunLog = {
|
||||
nodeId: string;
|
||||
nodeName: string;
|
||||
outputs?: WorkflowRunLogOutput[];
|
||||
records?: WorkflowRunLogRecord[];
|
||||
error?: string;
|
||||
};
|
||||
|
||||
export type WorkflowRunLogOutput = {
|
||||
export type WorkflowRunLogRecord = {
|
||||
time: ISO8601String;
|
||||
title: string;
|
||||
level: string;
|
||||
content: string;
|
||||
error?: string;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user