Browse Source

feat: add `$push` prefix in variable

Ahmad Kholid 2 years ago
parent
commit
8fc9a5b64a
1 changed files with 12 additions and 1 deletions
  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');
   }