Explorar o código

feat: add `$push` prefix in variable

Ahmad Kholid %!s(int64=2) %!d(string=hai) anos
pai
achega
8fc9a5b64a
Modificáronse 1 ficheiros con 12 adicións e 1 borrados
  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');
   }