@futdevpro/fsm-dynamo 1.20.139 → 1.20.141

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.
@@ -60,7 +60,11 @@ export declare class DyFM_Poll_ControlModel<T> {
60
60
  constructor(set: Partial<DyFM_Poll_ControlModel<T>>);
61
61
  /**
62
62
  * The former `rxjs.timer(delay, period).subscribe(tick)`: the first tick after `delay` ms, then every `period` ms;
63
- * a non-positive / missing period means ONE tick (as with `timer(delay)`). The tick is not awaited, as before.
63
+ * a non-positive / missing period means ONE tick (as with `timer(delay)`).
64
+ *
65
+ * BFR-CCAPREVISIONED-034 — a tick never starts while the previous one still runs: a period that comes during a slow
66
+ * `pollDo` is SKIPPED (measured before: a 1300 ms `pollDo` on a 400 ms period ran 4 at once). A tick's rejection is
67
+ * caught here, so it never becomes an unhandled promise rejection.
64
68
  */
65
69
  private static schedule;
66
70
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"poll.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/poll.control-model.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGhF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAsB,CAAC,CAAC;IACnC,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAuB;IAEpE,IAAI,EAAE,MAAM,CAAC;IAEb,gFAAgF;IAChF,IAAI,EAAE,yBAAyB,CAAC;IAChC,mFAAmF;IACnF,OAAO,EAAE,2BAA2B,CAAC;IACrC,+EAA+E;IACvE,SAAS,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,OAAA,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAyC;IAChF;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAK;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAc;IACzC,yFAAyF;IACzF,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAS;IACzD,kFAAkF;IAClF,SAAiB,YAAY,EAAE,OAAO,CAAC;IACvC,yFAAyF;IACzF,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAS;IACzD,kFAAkF;IAClF,SAAiB,YAAY,EAAE,OAAO,CAAC;gBAGrC,GAAG,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAmCzC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;IA0CvB;;;OAGG;YACW,SAAS;IAmCvB;;;OAGG;IACH,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAe/B,IAAI,IAAI,IAAI;IAKZ,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;CAKrB;AAGD,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,IAAI,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"poll.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/poll.control-model.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGhF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAsB,CAAC,CAAC;IACnC,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAuB;IAEpE,IAAI,EAAE,MAAM,CAAC;IAEb,gFAAgF;IAChF,IAAI,EAAE,yBAAyB,CAAC;IAChC,mFAAmF;IACnF,OAAO,EAAE,2BAA2B,CAAC;IACrC,+EAA+E;IACvE,SAAS,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,OAAA,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAyC;IAChF;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAK;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAc;IACzC,yFAAyF;IACzF,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAS;IACzD,kFAAkF;IAClF,SAAiB,YAAY,EAAE,OAAO,CAAC;IACvC,yFAAyF;IACzF,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAS;IACzD,kFAAkF;IAClF,SAAiB,YAAY,EAAE,OAAO,CAAC;gBAGrC,GAAG,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAmCzC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;IAmDvB;;;OAGG;YACW,SAAS;IAqCvB;;;OAGG;IACH,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAe/B,IAAI,IAAI,IAAI;IAKZ,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;CAKrB;AAGD,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,IAAI,SAAS,EAAE,CAAC"}
@@ -82,17 +82,30 @@ class DyFM_Poll_ControlModel {
82
82
  }
83
83
  /**
84
84
  * The former `rxjs.timer(delay, period).subscribe(tick)`: the first tick after `delay` ms, then every `period` ms;
85
- * a non-positive / missing period means ONE tick (as with `timer(delay)`). The tick is not awaited, as before.
85
+ * a non-positive / missing period means ONE tick (as with `timer(delay)`).
86
+ *
87
+ * BFR-CCAPREVISIONED-034 — a tick never starts while the previous one still runs: a period that comes during a slow
88
+ * `pollDo` is SKIPPED (measured before: a 1300 ms `pollDo` on a 400 ms period ran 4 at once). A tick's rejection is
89
+ * caught here, so it never becomes an unhandled promise rejection.
86
90
  */
87
91
  static schedule(delay, period, tick) {
88
92
  let timeout;
89
93
  let interval;
90
94
  let closed = false;
95
+ let inFlight = false;
91
96
  /** Runs one tick — a stopped poll never ticks again. */
92
97
  const run = () => {
93
- if (!closed) {
94
- void tick();
98
+ if (closed || inFlight) {
99
+ return;
95
100
  }
101
+ inFlight = true;
102
+ tick()
103
+ .catch((error) => {
104
+ console.error('DYNAMO ERROR: DyFM_Poll tick failed', error);
105
+ })
106
+ .finally(() => {
107
+ inFlight = false;
108
+ });
96
109
  };
97
110
  timeout = setTimeout(() => {
98
111
  timeout = undefined;
@@ -138,11 +151,13 @@ class DyFM_Poll_ControlModel {
138
151
  this.pollDoError(error);
139
152
  }
140
153
  else {
141
- throw new error_control_model_1.DyFM_Error({
154
+ // BFR-CCAPREVISIONED-034 — said, ⛔ thrown into an unawaited promise (every failing tick was an
155
+ // unhandledRejection)
156
+ console.error(new error_control_model_1.DyFM_Error({
142
157
  message: `DYNAMO ERROR: ` +
143
158
  `\nDynamoPoll: "${this.name}" pollDo was UNSUCCESSFUL`,
144
159
  error: error,
145
- });
160
+ }));
146
161
  }
147
162
  });
148
163
  });
@@ -1 +1 @@
1
- {"version":3,"file":"poll.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/poll.control-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poll.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/poll.control-model.ts"],"names":[],"mappings":"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"}
@@ -79,17 +79,30 @@ export class DyFM_Poll_ControlModel {
79
79
  }
80
80
  /**
81
81
  * The former `rxjs.timer(delay, period).subscribe(tick)`: the first tick after `delay` ms, then every `period` ms;
82
- * a non-positive / missing period means ONE tick (as with `timer(delay)`). The tick is not awaited, as before.
82
+ * a non-positive / missing period means ONE tick (as with `timer(delay)`).
83
+ *
84
+ * BFR-CCAPREVISIONED-034 — a tick never starts while the previous one still runs: a period that comes during a slow
85
+ * `pollDo` is SKIPPED (measured before: a 1300 ms `pollDo` on a 400 ms period ran 4 at once). A tick's rejection is
86
+ * caught here, so it never becomes an unhandled promise rejection.
83
87
  */
84
88
  static schedule(delay, period, tick) {
85
89
  let timeout;
86
90
  let interval;
87
91
  let closed = false;
92
+ let inFlight = false;
88
93
  /** Runs one tick — a stopped poll never ticks again. */
89
94
  const run = () => {
90
- if (!closed) {
91
- void tick();
95
+ if (closed || inFlight) {
96
+ return;
92
97
  }
98
+ inFlight = true;
99
+ tick()
100
+ .catch((error) => {
101
+ console.error('DYNAMO ERROR: DyFM_Poll tick failed', error);
102
+ })
103
+ .finally(() => {
104
+ inFlight = false;
105
+ });
93
106
  };
94
107
  timeout = setTimeout(() => {
95
108
  timeout = undefined;
@@ -135,11 +148,13 @@ export class DyFM_Poll_ControlModel {
135
148
  this.pollDoError(error);
136
149
  }
137
150
  else {
138
- throw new DyFM_Error({
151
+ // BFR-CCAPREVISIONED-034 — said, ⛔ thrown into an unawaited promise (every failing tick was an
152
+ // unhandledRejection)
153
+ console.error(new DyFM_Error({
139
154
  message: `DYNAMO ERROR: ` +
140
155
  `\nDynamoPoll: "${this.name}" pollDo was UNSUCCESSFUL`,
141
156
  error: error,
142
- });
157
+ }));
143
158
  }
144
159
  });
145
160
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/fsm-dynamo",
3
- "version": "1.20.139",
3
+ "version": "1.20.141",
4
4
  "description": "Full Stack Model Collection for Dynamic (NodeJS-Typescript) Framework called Dynamo, by Future Development Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "full-stack-package",
@@ -60,6 +60,7 @@
60
60
  "verify-build": "node scripts/verify-build-completeness.js"
61
61
  },
62
62
  "main": "./build/index.js",
63
+ "sideEffects": false,
63
64
  "files": [
64
65
  "build",
65
66
  "build-esm",