http-request-manager 18.13.1 → 18.13.2

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.
@@ -876,13 +876,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
876
876
  }], ctorParameters: () => [] });
877
877
 
878
878
  class PathTrackerStateModel {
879
- constructor(baselineQuery, consumedValuesByKey = {}, watchExpiresAt) {
879
+ constructor(baselineQuery, consumedValuesByKey = {}, watchExpiresAt, trackedAt) {
880
880
  this.baselineQuery = baselineQuery;
881
881
  this.consumedValuesByKey = consumedValuesByKey;
882
882
  this.watchExpiresAt = watchExpiresAt;
883
+ this.trackedAt = trackedAt;
883
884
  }
884
885
  static adapt(item) {
885
- return new PathTrackerStateModel(item?.baselineQuery, item?.consumedValuesByKey, item?.watchExpiresAt);
886
+ return new PathTrackerStateModel(item?.baselineQuery, item?.consumedValuesByKey, item?.watchExpiresAt, item?.trackedAt);
886
887
  }
887
888
  }
888
889
 
@@ -926,7 +927,12 @@ class QueryParamsTrackerService {
926
927
  return false;
927
928
  this.cleanupExpiredEntries();
928
929
  if (!normalized.hasQuery) {
929
- this.ensurePathState(normalized.pathKey);
930
+ const pathExists = !!this.state.paths[normalized.pathKey];
931
+ if (pathExists) {
932
+ return false;
933
+ }
934
+ const pathState = this.ensurePathState(normalized.pathKey);
935
+ pathState.trackedAt = Math.floor(Date.now() / 1000);
930
936
  this.persistState();
931
937
  return true;
932
938
  }
@@ -1119,7 +1125,8 @@ class QueryParamsTrackerService {
1119
1125
  }
1120
1126
  const hasBaseline = Boolean(pathState.baselineQuery && Object.keys(pathState.baselineQuery).length > 0);
1121
1127
  const hasTrackedValues = Object.keys(pathState.consumedValuesByKey).some((key) => (pathState.consumedValuesByKey[key] || []).length > 0);
1122
- if (!hasBaseline && !hasTrackedValues) {
1128
+ const isNoQueryTracked = Boolean(pathState.trackedAt);
1129
+ if (!hasBaseline && !hasTrackedValues && !isNoQueryTracked) {
1123
1130
  delete this.state.paths[pathKey];
1124
1131
  }
1125
1132
  });
@@ -1156,6 +1163,10 @@ class QueryParamsTrackerService {
1156
1163
  .pipe(take(1))
1157
1164
  .subscribe({
1158
1165
  next: (storedState) => {
1166
+ // Don't overwrite in-memory state if we've already tracked paths
1167
+ if (Object.keys(this.state.paths).length > 0) {
1168
+ return;
1169
+ }
1159
1170
  if (this.isTrackerState(storedState)) {
1160
1171
  this.state = QueryTrackerStateModel.adapt(storedState);
1161
1172
  this.cleanupExpiredEntries();
@@ -1164,7 +1175,9 @@ class QueryParamsTrackerService {
1164
1175
  this.state = { paths: {} };
1165
1176
  },
1166
1177
  error: () => {
1167
- this.state = { paths: {} };
1178
+ if (Object.keys(this.state.paths).length === 0) {
1179
+ this.state = { paths: {} };
1180
+ }
1168
1181
  }
1169
1182
  });
1170
1183
  }