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.
@@ -2670,14 +2670,17 @@
2670
2670
  */
2671
2671
  function dbOnClosed(db, handler) {
2672
2672
  db.on.close.subscribe(handler);
2673
- const origClose = db.close;
2674
- db.close = function () {
2673
+ // @ts-ignore
2674
+ const origClose = db._close;
2675
+ // @ts-ignore
2676
+ db._close = function () {
2675
2677
  origClose.call(this);
2676
2678
  handler();
2677
2679
  };
2678
2680
  return () => {
2679
2681
  db.on.close.unsubscribe(handler);
2680
- db.close = origClose;
2682
+ // @ts-ignore
2683
+ db._close = origClose;
2681
2684
  };
2682
2685
  }
2683
2686
 
@@ -3586,13 +3589,17 @@
3586
3589
  return db.cloud.persistedSyncState.pipe(operators.filter((syncState) => (syncState === null || syncState === void 0 ? void 0 : syncState.realms.includes(userLogin.userId)) || false), operators.take(1), operators.map((syncState) => [userLogin, syncState]));
3587
3590
  }
3588
3591
  return new rxjs.BehaviorSubject([userLogin, syncState]);
3589
- }), operators.switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), operators.switchMap(([userLogin, realmSetHash]) =>
3590
- // Let server end query changes from last entry of same client-ID and forward.
3591
- // If no new entries, server won't bother the client. If new entries, server sends only those
3592
- // and the baseRev of the last from same client-ID.
3593
- userLogin
3594
- ? 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)
3595
- : rxjs.from([])), operators.catchError((error) => {
3592
+ }), operators.switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), operators.distinctUntilChanged(([prevUser, prevHash], [currUser, currHash]) => prevUser === currUser && prevHash === currHash), operators.switchMap(([userLogin, realmSetHash]) => {
3593
+ // Let server end query changes from last entry of same client-ID and forward.
3594
+ // If no new entries, server won't bother the client. If new entries, server sends only those
3595
+ // and the baseRev of the last from same client-ID.
3596
+ if (userLogin) {
3597
+ 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);
3598
+ }
3599
+ else {
3600
+ return rxjs.from([]);
3601
+ }
3602
+ }), operators.catchError((error) => {
3596
3603
  if ((error === null || error === void 0 ? void 0 : error.name) === 'TokenExpiredError') {
3597
3604
  console.debug('WebSocket observable: Token expired. Refreshing token...');
3598
3605
  return rxjs.of(true).pipe(operators.switchMap(() => __awaiter(this, void 0, void 0, function* () {
@@ -3614,15 +3621,19 @@
3614
3621
  return rxjs.from(waitAndReconnectWhenUserDoesSomething(error)).pipe(operators.switchMap(() => createObservable()));
3615
3622
  }));
3616
3623
  }
3617
- return createObservable().subscribe((msg) => {
3618
- if (msg) {
3619
- console.debug('WS got message', msg);
3620
- db.messageConsumer.enqueue(msg);
3621
- }
3622
- }, (error) => {
3623
- console.error('Oops! The main observable errored!', error);
3624
- }, () => {
3625
- console.error('Oops! The main observable completed!');
3624
+ return createObservable().subscribe({
3625
+ next: (msg) => {
3626
+ if (msg) {
3627
+ console.debug('WS got message', msg);
3628
+ db.messageConsumer.enqueue(msg);
3629
+ }
3630
+ },
3631
+ error: (error) => {
3632
+ console.error('WS got error', error);
3633
+ },
3634
+ complete: () => {
3635
+ console.debug('WS observable completed');
3636
+ },
3626
3637
  });
3627
3638
  }
3628
3639