dexie 3.2.2 → 3.2.4-beta.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.
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 3.2.2, Wed Apr 27 2022
7
+ * Version 3.2.4-beta.1, Tue May 30 2023
8
8
  *
9
9
  * https://dexie.org
10
10
  *
@@ -930,10 +930,18 @@ declare global {
930
930
  readonly observable: symbol;
931
931
  }
932
932
  }
933
+ export interface Subscribable<T> {
934
+ subscribe(observer: Partial<Observer<T>>): Unsubscribable;
935
+ }
936
+ export interface Unsubscribable {
937
+ unsubscribe(): void;
938
+ }
933
939
  export interface Observable<T = any> {
934
- subscribe(onNext?: ((value: T) => void) | null, onError?: ((error: any) => void) | null, onComplete?: (() => void) | null): Subscription;
935
- subscribe(observer?: Observer<T> | null): Subscription;
936
- [Symbol.observable]: () => Observable<T>;
940
+ subscribe(observerOrNext?: Observer<T> | ((value: T) => void)): Subscription;
941
+ subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;
942
+ getValue?(): T;
943
+ hasValue?(): boolean;
944
+ [Symbol.observable]: () => Subscribable<T>;
937
945
  }
938
946
  export interface Subscription {
939
947
  unsubscribe(): void;
package/dist/dexie.js CHANGED
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * By David Fahlander, david.fahlander@gmail.com
6
6
  *
7
- * Version 3.2.2, Wed Apr 27 2022
7
+ * Version 3.2.4-beta.1, Tue May 30 2023
8
8
  *
9
9
  * https://dexie.org
10
10
  *
@@ -1287,7 +1287,7 @@
1287
1287
  }
1288
1288
  }
1289
1289
 
1290
- var DEXIE_VERSION = '3.2.2';
1290
+ var DEXIE_VERSION = '3.2.4-beta.1';
1291
1291
  var maxString = String.fromCharCode(65535);
1292
1292
  var minKey = -Infinity;
1293
1293
  var INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.";
@@ -4907,7 +4907,9 @@
4907
4907
  }
4908
4908
 
4909
4909
  function liveQuery(querier) {
4910
- return new Observable(function (observer) {
4910
+ var hasValue = false;
4911
+ var currentValue = undefined;
4912
+ var observable = new Observable(function (observer) {
4911
4913
  var scopeFuncIsAsync = isAsyncFunction(querier);
4912
4914
  function execute(subscr) {
4913
4915
  if (scopeFuncIsAsync) {
@@ -4960,6 +4962,8 @@
4960
4962
  }
4961
4963
  querying = true;
4962
4964
  Promise.resolve(ret).then(function (result) {
4965
+ hasValue = true;
4966
+ currentValue = result;
4963
4967
  querying = false;
4964
4968
  if (closed)
4965
4969
  return;
@@ -4973,6 +4977,7 @@
4973
4977
  }
4974
4978
  }, function (err) {
4975
4979
  querying = false;
4980
+ hasValue = false;
4976
4981
  observer.error && observer.error(err);
4977
4982
  subscription.unsubscribe();
4978
4983
  });
@@ -4980,6 +4985,9 @@
4980
4985
  doQuery();
4981
4986
  return subscription;
4982
4987
  });
4988
+ observable.hasValue = function () { return hasValue; };
4989
+ observable.getValue = function () { return currentValue; };
4990
+ return observable;
4983
4991
  }
4984
4992
 
4985
4993
  var domDeps;
@@ -5115,6 +5123,9 @@
5115
5123
 
5116
5124
  if (typeof BroadcastChannel !== 'undefined') {
5117
5125
  var bc_1 = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);
5126
+ if (typeof bc_1.unref === 'function') {
5127
+ bc_1.unref();
5128
+ }
5118
5129
  globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {
5119
5130
  if (!propagatingLocally) {
5120
5131
  bc_1.postMessage(changedParts);