dexie-cloud-addon 4.0.1-beta.44 → 4.0.1-beta.45

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.
@@ -2664,14 +2664,17 @@ const DISABLE_SERVICEWORKER_STRATEGY = (isSafari && safariVersion <= 605) || //
2664
2664
  */
2665
2665
  function dbOnClosed(db, handler) {
2666
2666
  db.on.close.subscribe(handler);
2667
- const origClose = db.close;
2668
- db.close = function () {
2667
+ // @ts-ignore
2668
+ const origClose = db._close;
2669
+ // @ts-ignore
2670
+ db._close = function () {
2669
2671
  origClose.call(this);
2670
2672
  handler();
2671
2673
  };
2672
2674
  return () => {
2673
2675
  db.on.close.unsubscribe(handler);
2674
- db.close = origClose;
2676
+ // @ts-ignore
2677
+ db._close = origClose;
2675
2678
  };
2676
2679
  }
2677
2680
 
@@ -3580,13 +3583,17 @@ function connectWebSocket(db) {
3580
3583
  return db.cloud.persistedSyncState.pipe(filter((syncState) => (syncState === null || syncState === void 0 ? void 0 : syncState.realms.includes(userLogin.userId)) || false), take(1), map((syncState) => [userLogin, syncState]));
3581
3584
  }
3582
3585
  return new BehaviorSubject([userLogin, syncState]);
3583
- }), switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), switchMap(([userLogin, realmSetHash]) =>
3584
- // Let server end query changes from last entry of same client-ID and forward.
3585
- // If no new entries, server won't bother the client. If new entries, server sends only those
3586
- // and the baseRev of the last from same client-ID.
3587
- userLogin
3588
- ? new WSObservable(db.cloud.options.databaseUrl, db.cloud.persistedSyncState.value.serverRevision, realmSetHash, db.cloud.persistedSyncState.value.clientIdentity, messageProducer, db.cloud.webSocketStatus, userLogin.accessToken, userLogin.accessTokenExpiration)
3589
- : from([])), catchError((error) => {
3586
+ }), switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), distinctUntilChanged(([prevUser, prevHash], [currUser, currHash]) => prevUser === currUser && prevHash === currHash), switchMap(([userLogin, realmSetHash]) => {
3587
+ // Let server end query changes from last entry of same client-ID and forward.
3588
+ // If no new entries, server won't bother the client. If new entries, server sends only those
3589
+ // and the baseRev of the last from same client-ID.
3590
+ if (userLogin) {
3591
+ return new WSObservable(db.cloud.options.databaseUrl, db.cloud.persistedSyncState.value.serverRevision, realmSetHash, db.cloud.persistedSyncState.value.clientIdentity, messageProducer, db.cloud.webSocketStatus, userLogin.accessToken, userLogin.accessTokenExpiration);
3592
+ }
3593
+ else {
3594
+ return from([]);
3595
+ }
3596
+ }), catchError((error) => {
3590
3597
  if ((error === null || error === void 0 ? void 0 : error.name) === 'TokenExpiredError') {
3591
3598
  console.debug('WebSocket observable: Token expired. Refreshing token...');
3592
3599
  return of(true).pipe(switchMap(() => __awaiter(this, void 0, void 0, function* () {
@@ -3608,15 +3615,19 @@ function connectWebSocket(db) {
3608
3615
  return from(waitAndReconnectWhenUserDoesSomething(error)).pipe(switchMap(() => createObservable()));
3609
3616
  }));
3610
3617
  }
3611
- return createObservable().subscribe((msg) => {
3612
- if (msg) {
3613
- console.debug('WS got message', msg);
3614
- db.messageConsumer.enqueue(msg);
3615
- }
3616
- }, (error) => {
3617
- console.error('Oops! The main observable errored!', error);
3618
- }, () => {
3619
- console.error('Oops! The main observable completed!');
3618
+ return createObservable().subscribe({
3619
+ next: (msg) => {
3620
+ if (msg) {
3621
+ console.debug('WS got message', msg);
3622
+ db.messageConsumer.enqueue(msg);
3623
+ }
3624
+ },
3625
+ error: (error) => {
3626
+ console.error('WS got error', error);
3627
+ },
3628
+ complete: () => {
3629
+ console.debug('WS observable completed');
3630
+ },
3620
3631
  });
3621
3632
  }
3622
3633