@openfn/ws-worker 0.2.2 → 0.2.4

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # ws-worker
2
2
 
3
+ ## 0.2.4
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [419f276]
8
+ - Updated dependencies [0e66f5a]
9
+ - @openfn/runtime@0.1.2
10
+ - @openfn/engine-multi@0.1.9
11
+
12
+ ## 0.2.3
13
+
14
+ ### Patch Changes
15
+
16
+ - 7d350d9: Only consider leaf nodes when calculating attempt fail reasons
17
+
3
18
  ## 0.2.2
4
19
 
5
20
  ### Patch Changes
package/dist/index.js CHANGED
@@ -216,7 +216,7 @@ var stringify_default = (obj) => stringify(obj, (_key, value) => {
216
216
  });
217
217
 
218
218
  // src/api/reasons.ts
219
- var calculateJobExitReason = (jobId, state, error) => {
219
+ var calculateJobExitReason = (jobId, state = { data: {} }, error) => {
220
220
  let reason = "success";
221
221
  let error_type = null;
222
222
  let error_message = null;
@@ -231,12 +231,14 @@ var calculateJobExitReason = (jobId, state, error) => {
231
231
  return { reason, error_type, error_message };
232
232
  };
233
233
  var calculateAttemptExitReason = (state) => {
234
- if (state.reasons) {
235
- const fail = Object.values(state.reasons).find(
236
- ({ reason }) => reason === "fail"
237
- );
238
- return fail || { reason: "success", error_type: null, error_message: null };
234
+ if (state.plan && state.reasons) {
235
+ const leafJobReasons = state.plan.jobs.filter(({ next }) => !next || Object.keys(next).length == 0).map(({ id }) => state.reasons[id]);
236
+ const fail = leafJobReasons.find((r) => r && r.reason === "fail");
237
+ if (fail) {
238
+ return fail;
239
+ }
239
240
  }
241
+ return { reason: "success", error_type: null, error_message: null };
240
242
  };
241
243
 
242
244
  // src/api/execute.ts
@@ -339,21 +341,25 @@ function onJobComplete({ channel, state }, event, error) {
339
341
  state.lastDataclipId = dataclipId;
340
342
  delete state.activeRun;
341
343
  delete state.activeJob;
342
- const { reason, error_message, error_type } = calculateJobExitReason(
343
- job_id,
344
- event.state,
345
- error
346
- );
347
- state.reasons[job_id] = { reason, error_message, error_type };
348
- return sendEvent(channel, RUN_COMPLETE, {
349
- run_id,
350
- job_id,
351
- output_dataclip_id: dataclipId,
352
- output_dataclip: stringify_default(event.state),
353
- reason,
354
- error_message,
355
- error_type
356
- });
344
+ try {
345
+ const { reason, error_message, error_type } = calculateJobExitReason(
346
+ job_id,
347
+ event.state,
348
+ error
349
+ );
350
+ state.reasons[job_id] = { reason, error_message, error_type };
351
+ return sendEvent(channel, RUN_COMPLETE, {
352
+ run_id,
353
+ job_id,
354
+ output_dataclip_id: dataclipId,
355
+ output_dataclip: stringify_default(event.state),
356
+ reason,
357
+ error_message,
358
+ error_type
359
+ });
360
+ } catch (e) {
361
+ console.log(e);
362
+ }
357
363
  }
358
364
  function onWorkflowStart({ channel }, _event) {
359
365
  return sendEvent(channel, ATTEMPT_START);
package/dist/start.js CHANGED
@@ -5198,7 +5198,7 @@ var stringify_default = (obj) => stringify(obj, (_key, value) => {
5198
5198
  });
5199
5199
 
5200
5200
  // src/api/reasons.ts
5201
- var calculateJobExitReason = (jobId, state, error) => {
5201
+ var calculateJobExitReason = (jobId, state = { data: {} }, error) => {
5202
5202
  let reason = "success";
5203
5203
  let error_type = null;
5204
5204
  let error_message = null;
@@ -5213,12 +5213,14 @@ var calculateJobExitReason = (jobId, state, error) => {
5213
5213
  return { reason, error_type, error_message };
5214
5214
  };
5215
5215
  var calculateAttemptExitReason = (state) => {
5216
- if (state.reasons) {
5217
- const fail = Object.values(state.reasons).find(
5218
- ({ reason }) => reason === "fail"
5219
- );
5220
- return fail || { reason: "success", error_type: null, error_message: null };
5216
+ if (state.plan && state.reasons) {
5217
+ const leafJobReasons = state.plan.jobs.filter(({ next }) => !next || Object.keys(next).length == 0).map(({ id }) => state.reasons[id]);
5218
+ const fail = leafJobReasons.find((r) => r && r.reason === "fail");
5219
+ if (fail) {
5220
+ return fail;
5221
+ }
5221
5222
  }
5223
+ return { reason: "success", error_type: null, error_message: null };
5222
5224
  };
5223
5225
 
5224
5226
  // src/api/execute.ts
@@ -5321,21 +5323,25 @@ function onJobComplete({ channel, state }, event, error) {
5321
5323
  state.lastDataclipId = dataclipId;
5322
5324
  delete state.activeRun;
5323
5325
  delete state.activeJob;
5324
- const { reason, error_message, error_type } = calculateJobExitReason(
5325
- job_id,
5326
- event.state,
5327
- error
5328
- );
5329
- state.reasons[job_id] = { reason, error_message, error_type };
5330
- return sendEvent(channel, RUN_COMPLETE, {
5331
- run_id,
5332
- job_id,
5333
- output_dataclip_id: dataclipId,
5334
- output_dataclip: stringify_default(event.state),
5335
- reason,
5336
- error_message,
5337
- error_type
5338
- });
5326
+ try {
5327
+ const { reason, error_message, error_type } = calculateJobExitReason(
5328
+ job_id,
5329
+ event.state,
5330
+ error
5331
+ );
5332
+ state.reasons[job_id] = { reason, error_message, error_type };
5333
+ return sendEvent(channel, RUN_COMPLETE, {
5334
+ run_id,
5335
+ job_id,
5336
+ output_dataclip_id: dataclipId,
5337
+ output_dataclip: stringify_default(event.state),
5338
+ reason,
5339
+ error_message,
5340
+ error_type
5341
+ });
5342
+ } catch (e) {
5343
+ console.log(e);
5344
+ }
5339
5345
  }
5340
5346
  function onWorkflowStart({ channel }, _event) {
5341
5347
  return sendEvent(channel, ATTEMPT_START);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfn/ws-worker",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "A Websocket Worker to connect Lightning to a Runtime Engine",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -21,9 +21,9 @@
21
21
  "koa-logger": "^3.2.1",
22
22
  "phoenix": "^1.7.7",
23
23
  "ws": "^8.14.1",
24
- "@openfn/engine-multi": "0.1.8",
24
+ "@openfn/engine-multi": "0.1.9",
25
25
  "@openfn/logger": "0.0.19",
26
- "@openfn/runtime": "0.1.1"
26
+ "@openfn/runtime": "0.1.2"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/koa": "^2.13.5",
@@ -40,7 +40,7 @@
40
40
  "tsup": "^6.2.3",
41
41
  "typescript": "^4.6.4",
42
42
  "yargs": "^17.6.2",
43
- "@openfn/lightning-mock": "1.0.9"
43
+ "@openfn/lightning-mock": "1.0.10"
44
44
  },
45
45
  "files": [
46
46
  "dist",