@5minds/node-red-contrib-processcube 0.14.0-feature-612fd3-lywvsveq → 0.14.0-feature-084b12-lyxa7tam

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,9 @@ services:
12
12
  volumes:
13
13
  - ./nodered/:/nodered/
14
14
  - ./examples/:/examples/
15
+ depends_on:
16
+ - engine
17
+ - authority
15
18
 
16
19
  engine:
17
20
  image: 5minds/processcube_engine:2024-1
@@ -24,6 +27,8 @@ services:
24
27
  iam__baseUrl: http://authority:11560
25
28
  iam__allowAnonymousRootAccess: true
26
29
  command: --seed-dir=/processes --port 8000
30
+ depends_on:
31
+ - authority
27
32
 
28
33
  authority:
29
34
  image: 5minds/processcube_authority:3.0.4
@@ -10,22 +10,24 @@ module.exports = function(RED) {
10
10
 
11
11
  const externalTaskId = msg.externalTaskId;
12
12
 
13
- let error = msg.error;
13
+ let msgError = msg.error;
14
14
 
15
- if (error === undefined) {
16
- error.message = "An error occurred";
17
- error.source = msg.payload;
15
+ if (msgError === undefined) {
16
+ msgError.message = "An error occurred";
17
+ msgError.source = msg.payload;
18
18
  }
19
19
 
20
- msg.payload = {
21
- "error": {
22
- errorCode: config.error,
23
- errorMessage: error.message,
24
- errorDetails: error.source
25
- }
26
- };
20
+ msg.errorCode = config.error;
21
+ msg.errorMessage = msgError.message;
22
+ msg.errorDetails = msgError.source;
27
23
 
28
- eventEmitter.emit(`handle-${externalTaskId}`, msg, true);
24
+ const error = new Error(msg.errorMessage);
25
+ error.errorCode = msg.errorCode;
26
+ error.errorDetails = msg.errorDetails;
27
+ error.externalTaskId = externalTaskId;
28
+ error._msgid = msg._msgid;
29
+
30
+ eventEmitter.emit(`handle-${externalTaskId}`, error, true);
29
31
 
30
32
  node.send(msg);
31
33
  });
@@ -46,27 +46,35 @@ module.exports = function(RED) {
46
46
  return await new Promise((resolve, reject) => {
47
47
 
48
48
  const handleFinishTask = (msg) => {
49
+ let result = RED.util.encodeObject(msg.payload);
50
+
51
+ node.log(`handle event for external task ${externalTask.flowNodeInstanceId} and process it with result ${result} on msg._msgid ${msg._msgid}.`);
52
+
49
53
  if (msg.externalTaskId) {
50
54
  delete started_external_tasks[msg.externalTaskId];
51
55
  }
52
56
 
53
57
  showStatus(node, Object.keys(started_external_tasks).length);
54
58
 
55
- let result = RED.util.encodeObject(msg.payload);
56
59
 
57
60
  resolve(result);
58
61
  };
59
62
 
60
63
  const handleErrorTask = (msg) => {
64
+
65
+ node.log(`handle error event for external task ${externalTask.flowNodeInstanceId} with result ${msg} on msg._msgid ${msg._msgid}.`);
66
+
61
67
  if (msg.externalTaskId) {
62
68
  delete started_external_tasks[msg.externalTaskId];
63
69
  }
64
70
 
65
71
  showStatus(node, Object.keys(started_external_tasks).length);
66
72
 
67
- let result = RED.util.encodeObject(msg);
68
73
 
69
- reject(result);
74
+ // TODO: with reject, the default error handling is proceed
75
+ // SEE: https://github.com/5minds/ProcessCube.Engine.Client.ts/blob/develop/src/ExternalTaskWorker.ts#L180
76
+ // reject(result);
77
+ resolve(msg);
70
78
  };
71
79
 
72
80
  eventEmitter.once(`handle-${externalTask.flowNodeInstanceId}`, (msg, isError = false) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@5minds/node-red-contrib-processcube",
3
- "version": "0.14.0-feature-612fd3-lywvsveq",
3
+ "version": "0.14.0-feature-084b12-lyxa7tam",
4
4
  "license": "MIT",
5
5
  "description": "Node-RED nodes for ProcessCube",
6
6
  "authors": [