浏览代码

feat: add `$push` prefix in variable

Ahmad Kholid 2 年之前
父节点
当前提交
8fc9a5b64a
共有 1 个文件被更改,包括 12 次插入1 次删除
  1. 12 1
      src/workflowEngine/WorkflowWorker.js

+ 12 - 1
src/workflowEngine/WorkflowWorker.js

@@ -109,7 +109,18 @@ class WorkflowWorker {
   }
 
   setVariable(name, value) {
-    this.engine.referenceData.variables[name] = value;
+    const vars = this.engine.referenceData.variables;
+
+    if (name.startsWith('$push:')) {
+      const { 1: varName } = name.split('$push:');
+
+      if (!objectHasKey(vars, varName)) vars[varName] = [];
+      else if (!Array.isArray(vars[varName])) vars[varName] = [vars[varName]];
+
+      vars[varName].push(value);
+    }
+
+    vars[name] = value;
     this.engine.addRefDataSnapshot('variables');
   }