mongodash 2.5.0 → 2.5.1

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.
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.waitUntil = waitUntil;
4
+ const _debug = require("debug");
5
+ const debug = _debug('mongodash:testing');
4
6
  /**
5
7
  * Waits until the provided condition function returns true.
6
8
  *
@@ -14,6 +16,7 @@ async function waitUntil(condition, options = {}) {
14
16
  let deadline = start + timeoutMs;
15
17
  let stableSince = Date.now();
16
18
  let lastTick = Date.now();
19
+ debug(`Started. Timeout: ${timeoutMs}ms, Poll: ${pollIntervalMs}ms, Stability: ${stabilityDurationMs}ms`);
17
20
  while (true) {
18
21
  const now = Date.now();
19
22
  // --- Time Jump Detection (Debug Support) ---
@@ -23,19 +26,22 @@ async function waitUntil(condition, options = {}) {
23
26
  if (elapsedSinceLastTick > 1000) {
24
27
  const jump = elapsedSinceLastTick - pollIntervalMs; // Approximate jump
25
28
  if (jump > 0) {
29
+ debug(`Time jump detected: ${jump}ms. Extending deadline.`);
26
30
  deadline += jump;
27
31
  }
28
32
  }
29
33
  lastTick = now;
30
34
  // -------------------------------------------
31
35
  if (now > deadline) {
36
+ debug(`Timeout! Elapsed: ${now - start}ms`);
32
37
  throw new Error(`waitUntil timeout after ${timeoutMs}ms (adjusted for pauses)`);
33
38
  }
34
39
  let result;
35
40
  try {
36
41
  result = await condition();
37
42
  }
38
- catch (_a) {
43
+ catch (err) {
44
+ debug(`Condition threw error:`, err);
39
45
  // error is ignored
40
46
  result = false; // Condition failing throws implies not met? Or should we propagate?
41
47
  // Usually waitUntil swallows errors unless critical. Let's assume false.
@@ -44,9 +50,11 @@ async function waitUntil(condition, options = {}) {
44
50
  }
45
51
  if (result) {
46
52
  if (stabilityDurationMs === 0) {
53
+ debug(`Condition met immediately.`);
47
54
  return;
48
55
  }
49
56
  if (now - stableSince >= stabilityDurationMs) {
57
+ debug(`Condition stable for ${now - stableSince}ms. Done.`);
50
58
  return;
51
59
  }
52
60
  // Condition is true but haven't been stable long enough
@@ -54,6 +62,13 @@ async function waitUntil(condition, options = {}) {
54
62
  }
55
63
  else {
56
64
  // Condition failed, reset stability timer
65
+ if (stableSince !== now) {
66
+ // Avoid spamming log every tick if it was already failing
67
+ // Actually, stableSince is reset to 'now' every time it fails?
68
+ // No, only when it WAS true and becomes false?
69
+ // Original code: stableSince = now; on else.
70
+ // So if it keeps failing, stableSince keeps moving forward.
71
+ }
57
72
  stableSince = now;
58
73
  }
59
74
  await new Promise((r) => setTimeout(r, pollIntervalMs));
@@ -1 +1 @@
1
- {"version":3,"file":"waitUntil.js","sourceRoot":"","sources":["../../../src/testing/waitUntil.ts"],"names":[],"mappings":";;AAyBA,8BAuDC;AA9DD;;;;;;GAMG;AACI,KAAK,UAAU,SAAS,CAAC,SAA2C,EAAE,UAA4B,EAAE;IACvG,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,mBAAmB,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAEpF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACjC,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE1B,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,8CAA8C;QAC9C,MAAM,oBAAoB,GAAG,GAAG,GAAG,QAAQ,CAAC;QAC5C,0EAA0E;QAC1E,2DAA2D;QAC3D,IAAI,oBAAoB,GAAG,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,oBAAoB,GAAG,cAAc,CAAC,CAAC,mBAAmB;YACvE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACX,QAAQ,IAAI,IAAI,CAAC;YACrB,CAAC;QACL,CAAC;QACD,QAAQ,GAAG,GAAG,CAAC;QACf,8CAA8C;QAE9C,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,0BAA0B,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QAC/B,CAAC;QAAC,WAAM,CAAC;YACL,mBAAmB;YACnB,MAAM,GAAG,KAAK,CAAC,CAAC,oEAAoE;YACpF,yEAAyE;YACzE,iEAAiE;YACjE,qEAAqE;QACzE,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO;YACX,CAAC;YACD,IAAI,GAAG,GAAG,WAAW,IAAI,mBAAmB,EAAE,CAAC;gBAC3C,OAAO;YACX,CAAC;YACD,wDAAwD;YACxD,gBAAgB;QACpB,CAAC;aAAM,CAAC;YACJ,0CAA0C;YAC1C,WAAW,GAAG,GAAG,CAAC;QACtB,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5D,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"waitUntil.js","sourceRoot":"","sources":["../../../src/testing/waitUntil.ts"],"names":[],"mappings":";;AA4BA,8BAqEC;AAjGD,gCAAgC;AAChC,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAoB1C;;;;;;GAMG;AACI,KAAK,UAAU,SAAS,CAAC,SAA2C,EAAE,UAA4B,EAAE;IACvG,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,mBAAmB,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAEpF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACjC,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE1B,KAAK,CAAC,qBAAqB,SAAS,aAAa,cAAc,kBAAkB,mBAAmB,IAAI,CAAC,CAAC;IAE1G,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,8CAA8C;QAC9C,MAAM,oBAAoB,GAAG,GAAG,GAAG,QAAQ,CAAC;QAC5C,0EAA0E;QAC1E,2DAA2D;QAC3D,IAAI,oBAAoB,GAAG,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,oBAAoB,GAAG,cAAc,CAAC,CAAC,mBAAmB;YACvE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACX,KAAK,CAAC,uBAAuB,IAAI,yBAAyB,CAAC,CAAC;gBAC5D,QAAQ,IAAI,IAAI,CAAC;YACrB,CAAC;QACL,CAAC;QACD,QAAQ,GAAG,GAAG,CAAC;QACf,8CAA8C;QAE9C,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;YACjB,KAAK,CAAC,qBAAqB,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,0BAA0B,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YACrC,mBAAmB;YACnB,MAAM,GAAG,KAAK,CAAC,CAAC,oEAAoE;YACpF,yEAAyE;YACzE,iEAAiE;YACjE,qEAAqE;QACzE,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBACpC,OAAO;YACX,CAAC;YACD,IAAI,GAAG,GAAG,WAAW,IAAI,mBAAmB,EAAE,CAAC;gBAC3C,KAAK,CAAC,wBAAwB,GAAG,GAAG,WAAW,WAAW,CAAC,CAAC;gBAC5D,OAAO;YACX,CAAC;YACD,wDAAwD;YACxD,gBAAgB;QACpB,CAAC;aAAM,CAAC;YACJ,0CAA0C;YAC1C,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gBACtB,0DAA0D;gBAC1D,+DAA+D;gBAC/D,+CAA+C;gBAC/C,6CAA6C;gBAC7C,4DAA4D;YAChE,CAAC;YACD,WAAW,GAAG,GAAG,CAAC;QACtB,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5D,CAAC;AACL,CAAC"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.waitUntilReactiveTasksIdle = waitUntilReactiveTasksIdle;
4
+ const _debug = require("debug");
4
5
  const reactiveTasks_1 = require("../reactiveTasks");
5
6
  const waitUntil_1 = require("./waitUntil");
7
+ const debug = _debug('mongodash:testing');
6
8
  /**
7
9
  * Waits until the reactive task system is idle.
8
10
  * "Idle" means:
@@ -19,11 +21,13 @@ async function waitUntilReactiveTasksIdle(customOptions = {}) {
19
21
  // Accessing private planner via exposed getter for testing
20
22
  const planner = reactiveTasks_1._scheduler.taskPlannerInstance;
21
23
  if (planner && !planner.isEmpty) {
24
+ debug('Planner not empty');
22
25
  return false;
23
26
  }
24
27
  // 2. Check Active Workers (Runner)
25
28
  const runner = reactiveTasks_1._scheduler.concurrentRunnerInstance;
26
29
  if (runner && runner.activeWorkers > 0) {
30
+ debug(`Active workers: ${runner.activeWorkers}`);
27
31
  return false;
28
32
  }
29
33
  // 3. Check Database
@@ -56,6 +60,7 @@ async function waitUntilReactiveTasksIdle(customOptions = {}) {
56
60
  ],
57
61
  });
58
62
  if (count > 0) {
63
+ debug(`Collection ${entry.tasksCollection.collectionName} has ${count} active tasks`);
59
64
  return false;
60
65
  }
61
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"waitUntilReactiveTasksIdle.js","sourceRoot":"","sources":["../../../src/testing/waitUntilReactiveTasksIdle.ts"],"names":[],"mappings":";;AAYA,gEAgEC;AA5ED,oDAAkE;AAClE,2CAA0D;AAE1D;;;;;;;;GAQG;AACI,KAAK,UAAU,0BAA0B,CAAC,gBAA2C,EAAE;IAC1F,MAAM,OAAO,mBACT,SAAS,EAAE,KAAK,EAChB,cAAc,EAAE,EAAE,EAClB,mBAAmB,EAAE,GAAG,IACrB,aAAa,CACnB,CAAC;IAEF,MAAM,IAAA,qBAAS,EAAC,KAAK,IAAI,EAAE;QACvB,sCAAsC;QACtC,2DAA2D;QAC3D,MAAM,OAAO,GAAG,0BAAU,CAAC,mBAAmB,CAAC;QAC/C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,mCAAmC;QACnC,MAAM,MAAM,GAAG,0BAAU,CAAC,wBAAwB,CAAC;QACnD,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,0BAAU,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAEzC,wEAAwE;QACxE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,uCAAuC;YACvC,oDAAoD;YACpD,4FAA4F;YAC5F,qEAAqE;YACrE,iEAAiE;YAEjE,2HAA2H;YAC3H,wDAAwD;YACxD,8CAA8C;YAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;YAEjG,uCAAuC;YACvC,UAAU;YACV,8DAA8D;YAC9D,sEAAsE;YACtE,iFAAiF;YACjF,iDAAiD;YAEjD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC;gBACrD,GAAG,EAAE;oBACD,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAyB,EAAE,EAAE;oBAC/E;wBACI,MAAM,EAAE,SAAS;wBACjB,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;qBACzE;iBACJ;aACJ,CAAC,CAAC;YAEH,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,EAAE,OAAO,CAAC,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"waitUntilReactiveTasksIdle.js","sourceRoot":"","sources":["../../../src/testing/waitUntilReactiveTasksIdle.ts"],"names":[],"mappings":";;AAeA,gEAmEC;AAlFD,gCAAgC;AAChC,oDAAkE;AAClE,2CAA0D;AAE1D,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAE1C;;;;;;;;GAQG;AACI,KAAK,UAAU,0BAA0B,CAAC,gBAA2C,EAAE;IAC1F,MAAM,OAAO,mBACT,SAAS,EAAE,KAAK,EAChB,cAAc,EAAE,EAAE,EAClB,mBAAmB,EAAE,GAAG,IACrB,aAAa,CACnB,CAAC;IAEF,MAAM,IAAA,qBAAS,EAAC,KAAK,IAAI,EAAE;QACvB,sCAAsC;QACtC,2DAA2D;QAC3D,MAAM,OAAO,GAAG,0BAAU,CAAC,mBAAmB,CAAC;QAC/C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,mCAAmC;QACnC,MAAM,MAAM,GAAG,0BAAU,CAAC,wBAAwB,CAAC;QACnD,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,mBAAmB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,0BAAU,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAEzC,wEAAwE;QACxE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,uCAAuC;YACvC,oDAAoD;YACpD,4FAA4F;YAC5F,qEAAqE;YACrE,iEAAiE;YAEjE,2HAA2H;YAC3H,wDAAwD;YACxD,8CAA8C;YAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;YAEjG,uCAAuC;YACvC,UAAU;YACV,8DAA8D;YAC9D,sEAAsE;YACtE,iFAAiF;YACjF,iDAAiD;YAEjD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC;gBACrD,GAAG,EAAE;oBACD,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAyB,EAAE,EAAE;oBAC/E;wBACI,MAAM,EAAE,SAAS;wBACjB,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;qBACzE;iBACJ;aACJ,CAAC,CAAC;YAEH,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,KAAK,CAAC,cAAc,KAAK,CAAC,eAAe,CAAC,cAAc,QAAQ,KAAK,eAAe,CAAC,CAAC;gBACtF,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,EAAE,OAAO,CAAC,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodash",
3
- "version": "2.5.0",
3
+ "version": "2.5.1",
4
4
  "type": "commonjs",
5
5
  "description": "An utility library delivering super-useful and super-simple tools using MongoDB",
6
6
  "main": "./dist/lib/index.js",