dexie 4.0.1-beta.3 → 4.0.1-beta.5

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/dist/dexie.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * By David Fahlander, david.fahlander@gmail.com
6
6
  *
7
- * Version 4.0.1-beta.3, Fri Dec 01 2023
7
+ * Version 4.0.1-beta.5, Mon Dec 11 2023
8
8
  *
9
9
  * https://dexie.org
10
10
  *
package/dist/dexie.js CHANGED
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * By David Fahlander, david.fahlander@gmail.com
6
6
  *
7
- * Version 4.0.1-beta.3, Fri Dec 01 2023
7
+ * Version 4.0.1-beta.5, Mon Dec 11 2023
8
8
  *
9
9
  * https://dexie.org
10
10
  *
@@ -1141,7 +1141,7 @@
1141
1141
  function zoneEnterEcho(targetZone) {
1142
1142
  ++totalEchoes;
1143
1143
  if (!task.echoes || --task.echoes === 0) {
1144
- task.echoes = task.id = 0;
1144
+ task.echoes = task.awaits = task.id = 0;
1145
1145
  }
1146
1146
  zoneStack.push(PSD);
1147
1147
  switchToZone(targetZone, true);
@@ -1225,6 +1225,19 @@
1225
1225
  return origThen.call(this, nativeAwaitCompatibleWrap(onResolved, zone), nativeAwaitCompatibleWrap(onRejected, zone));
1226
1226
  };
1227
1227
  }
1228
+ function execInGlobalContext(cb) {
1229
+ if (Promise === NativePromise && task.echoes === 0) {
1230
+ if (zoneEchoes === 0) {
1231
+ cb();
1232
+ }
1233
+ else {
1234
+ enqueueNativeMicroTask(cb);
1235
+ }
1236
+ }
1237
+ else {
1238
+ setTimeout(cb, 0);
1239
+ }
1240
+ }
1228
1241
  var rejection = DexiePromise.reject;
1229
1242
 
1230
1243
  function tempTransaction(db, mode, storeNames, fn) {
@@ -1269,7 +1282,7 @@
1269
1282
  }
1270
1283
  }
1271
1284
 
1272
- var DEXIE_VERSION = '4.0.1-beta.3';
1285
+ var DEXIE_VERSION = '4.0.1-beta.5';
1273
1286
  var maxString = String.fromCharCode(65535);
1274
1287
  var minKey = -Infinity;
1275
1288
  var INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.";
@@ -5538,12 +5551,7 @@
5538
5551
  if (scopeFuncIsAsync) {
5539
5552
  rv = rv.finally(decrementExpectedAwaits);
5540
5553
  }
5541
- return Promise.resolve(rv).finally(function () {
5542
- if (PSD.subscr === ctx.subscr) {
5543
- console.warn("Dexie liveQuery()'s querier callback did'nt await all of its spawned promises. Querier source: ".concat(querier));
5544
- return new NativePromise(function (resolve) { return setTimeout(resolve, 0); });
5545
- }
5546
- });
5554
+ return rv;
5547
5555
  }
5548
5556
  finally {
5549
5557
  wasRootExec && endMicroTickScope();
@@ -5569,6 +5577,7 @@
5569
5577
  };
5570
5578
  observer.start && observer.start(subscription);
5571
5579
  var startedListening = false;
5580
+ var doQuery = function () { return execInGlobalContext(_doQuery); };
5572
5581
  function shouldNotify() {
5573
5582
  return obsSetsOverlap(currentObs, accumMuts);
5574
5583
  }
@@ -5578,7 +5587,7 @@
5578
5587
  doQuery();
5579
5588
  }
5580
5589
  };
5581
- var doQuery = function () {
5590
+ var _doQuery = function () {
5582
5591
  if (closed ||
5583
5592
  !domDeps.indexedDB)
5584
5593
  {
@@ -5609,17 +5618,20 @@
5609
5618
  globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);
5610
5619
  startedListening = true;
5611
5620
  }
5612
- observer.next && observer.next(result);
5621
+ execInGlobalContext(function () { return !closed && observer.next && observer.next(result); });
5613
5622
  }, function (err) {
5614
5623
  hasValue = false;
5615
5624
  if (!['DatabaseClosedError', 'AbortError'].includes(err === null || err === void 0 ? void 0 : err.name)) {
5616
- if (closed)
5617
- return;
5618
- observer.error && observer.error(err);
5625
+ if (!closed)
5626
+ execInGlobalContext(function () {
5627
+ if (closed)
5628
+ return;
5629
+ observer.error && observer.error(err);
5630
+ });
5619
5631
  }
5620
5632
  });
5621
5633
  };
5622
- doQuery();
5634
+ setTimeout(doQuery, 0);
5623
5635
  return subscription;
5624
5636
  });
5625
5637
  observable.hasValue = function () { return hasValue; };