reactjrx 1.40.1 → 1.44.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/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { useRef, useMemo, useCallback, useSyncExternalStore, useEffect, createContext, memo, useContext } from "react";
2
2
  import { distinctUntilChanged, tap, finalize, catchError, EMPTY, Subject, identity, BehaviorSubject, of, zip, from, map, merge, throttleTime, switchMap, defer, iif, timer, throwError, scan, take, startWith, combineLatest, first, takeUntil, filter, concatMap as concatMap$1, mergeMap, fromEvent, skip, withLatestFrom, retry, shareReplay, endWith, delay, share, pairwise, NEVER, takeWhile } from "rxjs";
3
- import { jsx } from "react/jsx-runtime";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { retryWhen, concatMap, tap as tap$1 } from "rxjs/operators";
5
5
  const useLiveRef = (value) => {
6
6
  const ref = useRef(value);
@@ -470,7 +470,9 @@ const mergeResults = (stream$) => stream$.pipe(
470
470
  status: "loading"
471
471
  }
472
472
  ),
473
- distinctUntilChanged(shallowEqual)
473
+ distinctUntilChanged(
474
+ ({ data: prevData, ...prev }, { data: currData, ...curr }) => shallowEqual(prev, curr) && shallowEqual(prevData, currData)
475
+ )
474
476
  );
475
477
  function useAsyncQuery(query, mapOperatorOrOptions, options = {}) {
476
478
  const queryRef = useLiveRef(query);
@@ -595,27 +597,35 @@ function useAsyncQuery(query, mapOperatorOrOptions, options = {}) {
595
597
  const Context = createContext({
596
598
  client: null
597
599
  });
600
+ const ClientEffect = ({
601
+ client
602
+ }) => {
603
+ useEffect(() => {
604
+ const destroy = client.start();
605
+ return () => {
606
+ destroy();
607
+ };
608
+ }, [client]);
609
+ return null;
610
+ };
598
611
  const Provider = memo(
599
612
  ({
600
613
  children,
601
614
  client
602
615
  }) => {
603
616
  const value = useMemo(() => ({ client }), [client]);
604
- useEffect(
605
- () => () => {
606
- client.destroy();
607
- },
608
- [client]
609
- );
610
- return /* @__PURE__ */ jsx(Context.Provider, { value, children });
617
+ return /* @__PURE__ */ jsxs(Context.Provider, { value, children: [
618
+ /* @__PURE__ */ jsx(ClientEffect, { client: value.client }),
619
+ children
620
+ ] });
611
621
  }
612
622
  );
613
- const useReactJrxProvider = () => {
623
+ const useQueryClient = () => {
614
624
  const context = useContext(Context);
615
625
  if (context === null) {
616
626
  throw new Error("You forgot to register the provider");
617
627
  }
618
- return { ...context };
628
+ return context.client;
619
629
  };
620
630
  const arrayEqual = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);
621
631
  function isDefined(arg) {
@@ -628,10 +638,16 @@ const createActivityTrigger = (params$) => {
628
638
  return shouldRunTrigger !== false ? merge(
629
639
  fromEvent(document, "visibilitychange").pipe(
630
640
  filter(() => !document.hidden),
631
- map(() => ({ ignoreStale: shouldRunTrigger === "always" }))
641
+ map(() => ({
642
+ type: "refetch",
643
+ ignoreStale: shouldRunTrigger === "always"
644
+ }))
632
645
  ),
633
646
  fromEvent(window, "focus").pipe(
634
- map(() => ({ ignoreStale: shouldRunTrigger === "always" }))
647
+ map(() => ({
648
+ type: "refetch",
649
+ ignoreStale: shouldRunTrigger === "always"
650
+ }))
635
651
  )
636
652
  ) : EMPTY;
637
653
  })
@@ -642,7 +658,10 @@ const createNetworkTrigger = (params$) => {
642
658
  switchMap(({ options: { refetchOnReconnect = true } }) => {
643
659
  const shouldRunTrigger = typeof refetchOnReconnect === "function" ? refetchOnReconnect({}) : refetchOnReconnect;
644
660
  return shouldRunTrigger !== false ? fromEvent(window, "online").pipe(
645
- map(() => ({ ignoreStale: shouldRunTrigger === "always" }))
661
+ map(() => ({
662
+ type: "refetch",
663
+ ignoreStale: shouldRunTrigger === "always"
664
+ }))
646
665
  ) : EMPTY;
647
666
  })
648
667
  );
@@ -675,7 +694,7 @@ function useQuery({
675
694
  ...options
676
695
  }) {
677
696
  const internalRefresh$ = useSubject();
678
- const { client } = useReactJrxProvider();
697
+ const client = useQueryClient();
679
698
  const params$ = useQueryParams({ queryFn, queryKey, ...options });
680
699
  const result = useObserve(
681
700
  () => {
@@ -704,18 +723,18 @@ function useQuery({
704
723
  newKeyTrigger$,
705
724
  newObservableObjectQuery$
706
725
  );
707
- const refetch$ = merge(
708
- internalRefresh$.current.pipe(map(() => ({ ignoreStale: true }))),
726
+ const trigger$ = merge(
727
+ internalRefresh$.current,
709
728
  merge(activityRefetch$, networkRefetch$).pipe(throttleTime(500))
710
729
  );
711
730
  return newQueryTrigger$.pipe(
712
731
  withLatestFrom(key$),
713
732
  switchMap(([, key]) => {
714
- const { result$ } = client.query$({
733
+ const { result$ } = client.query({
715
734
  key,
716
735
  fn$,
717
736
  options$,
718
- refetch$
737
+ trigger$
719
738
  });
720
739
  return result$.pipe(
721
740
  scan(
@@ -752,7 +771,7 @@ function useQuery({
752
771
  [client]
753
772
  );
754
773
  const refetch = useCallback(() => {
755
- internalRefresh$.current.next();
774
+ internalRefresh$.current.next({ type: "refetch", ignoreStale: true });
756
775
  }, [client]);
757
776
  return { ...result, refetch };
758
777
  }
@@ -853,7 +872,7 @@ function createLogger(env) {
853
872
  };
854
873
  return _logger;
855
874
  }
856
- const Logger = createLogger("development");
875
+ const Logger = createLogger("production");
857
876
  const logger$3 = Logger.namespace("store");
858
877
  const createDebugger = (store$) => {
859
878
  return store$.pipe(
@@ -934,7 +953,12 @@ const createQueryStore = () => {
934
953
  }));
935
954
  };
936
955
  };
937
- const debugger$ = createDebugger(store$);
956
+ const start = () => {
957
+ const debugger$ = createDebugger(store$);
958
+ return () => {
959
+ debugger$.unsubscribe();
960
+ };
961
+ };
938
962
  return {
939
963
  set: setValue,
940
964
  get: getValue,
@@ -954,15 +978,10 @@ const createQueryStore = () => {
954
978
  queryTriggerSubject.next(event);
955
979
  },
956
980
  size: () => store.size,
957
- destroy: () => {
958
- debugger$.unsubscribe();
959
- queryEventSubject.complete();
960
- queryTriggerSubject.complete();
961
- }
981
+ start
962
982
  };
963
983
  };
964
984
  const createQueryTrigger = ({
965
- refetch$,
966
985
  options$,
967
986
  queryStore,
968
987
  key
@@ -980,12 +999,6 @@ const createQueryTrigger = ({
980
999
  filter((event) => key === event.key),
981
1000
  map(({ trigger: trigger2 }) => trigger2)
982
1001
  ),
983
- refetch$.pipe(
984
- map((event) => ({
985
- ...event,
986
- type: "refetch"
987
- }))
988
- ),
989
1002
  enabledTrigger$.pipe(
990
1003
  map(() => ({
991
1004
  type: "enabled",
@@ -1000,12 +1013,18 @@ const deduplicate = (key, queryStore) => (source) => {
1000
1013
  return defer(() => {
1001
1014
  var _a;
1002
1015
  const sourceFromStore = (_a = queryStore.get(key)) == null ? void 0 : _a.deduplication_fn;
1016
+ if (sourceFromStore)
1017
+ return sourceFromStore;
1018
+ let sourceToDeduplicate;
1003
1019
  const deleteFromStore = () => {
1004
- queryStore.update(key, {
1005
- deduplication_fn: void 0
1006
- });
1020
+ var _a2;
1021
+ if (((_a2 = queryStore.get(key)) == null ? void 0 : _a2.deduplication_fn) === sourceToDeduplicate) {
1022
+ queryStore.update(key, {
1023
+ deduplication_fn: void 0
1024
+ });
1025
+ }
1007
1026
  };
1008
- const finalSource = sourceFromStore ?? source.pipe(
1027
+ sourceToDeduplicate = source.pipe(
1009
1028
  /**
1010
1029
  * Ideally we would want to remove the query from the store only on finalize,
1011
1030
  * which means whenever the query complete or error. Unfortunately finalize is
@@ -1025,12 +1044,10 @@ const deduplicate = (key, queryStore) => (source) => {
1025
1044
  bufferSize: 1
1026
1045
  })
1027
1046
  );
1028
- if (!sourceFromStore) {
1029
- queryStore.update(key, {
1030
- deduplication_fn: finalSource
1031
- });
1032
- }
1033
- return finalSource;
1047
+ queryStore.update(key, {
1048
+ deduplication_fn: sourceToDeduplicate
1049
+ });
1050
+ return sourceToDeduplicate;
1034
1051
  });
1035
1052
  };
1036
1053
  const notifyQueryResult = (options$) => (stream$) => stream$.pipe(
@@ -1154,8 +1171,9 @@ const createQueryFetch = ({
1154
1171
  const query = queryStore.get(serializedKey);
1155
1172
  const cacheResult = query == null ? void 0 : query.cache_fnResult;
1156
1173
  const hasCache = !!cacheResult;
1174
+ const ignoreStale = trigger2.type === "refetch" && trigger2.ignoreStale;
1157
1175
  if (hasCache) {
1158
- if (!(query == null ? void 0 : query.isStale) && !trigger2.ignoreStale) {
1176
+ if (!(query == null ? void 0 : query.isStale) && !ignoreStale) {
1159
1177
  return of({
1160
1178
  fetchStatus: "idle",
1161
1179
  status: "success",
@@ -1183,6 +1201,12 @@ const compareKeys = (keyA, keyB, { exact = false } = {}) => {
1183
1201
  return keyA.reduce((acc, value, index) => {
1184
1202
  if (!acc)
1185
1203
  return false;
1204
+ if (value === void 0) {
1205
+ const hasNextItemInLineNotUndefined = keyA.slice(index, keyA.length - 1).some((item) => item !== void 0);
1206
+ if (!hasNextItemInLineNotUndefined) {
1207
+ return true;
1208
+ }
1209
+ }
1186
1210
  return serializeObject(value) === serializeObject(keyB[index]);
1187
1211
  }, true);
1188
1212
  };
@@ -1219,6 +1243,9 @@ const createInvalidationClient = ({
1219
1243
  keysToRefetch = Array.from(queryStore.keys());
1220
1244
  }
1221
1245
  keysToRefetch.forEach((key) => {
1246
+ queryStore.update(key, {
1247
+ deduplication_fn: void 0
1248
+ });
1222
1249
  queryStore.dispatchQueryTrigger({
1223
1250
  key,
1224
1251
  trigger: { ignoreStale: true, type: "refetch" }
@@ -1226,15 +1253,10 @@ const createInvalidationClient = ({
1226
1253
  });
1227
1254
  };
1228
1255
  return {
1229
- invalidateQueries,
1230
- destroy: () => {
1231
- }
1256
+ invalidateQueries
1232
1257
  };
1233
1258
  };
1234
- const logger$1 = Logger.namespace("refetch");
1235
- const createRefetchClient = ({
1236
- queryStore
1237
- }) => {
1259
+ const createRefetchClient = (_) => {
1238
1260
  const pipeQueryResult = ({
1239
1261
  options$
1240
1262
  }) => (stream) => {
@@ -1264,28 +1286,11 @@ const createRefetchClient = ({
1264
1286
  )
1265
1287
  );
1266
1288
  };
1267
- const pipeQueryTrigger = ({
1268
- key
1269
- }) => (stream) => {
1270
- return merge(
1271
- stream.pipe(
1272
- tap(({ ignoreStale }) => {
1273
- const query = queryStore.get(key);
1274
- if (query && ignoreStale && !query.isStale) {
1275
- logger$1.log(key, "marked stale by trigger!");
1276
- queryStore.update(key, {
1277
- isStale: true
1278
- });
1279
- }
1280
- })
1281
- )
1282
- );
1289
+ const refetchQueries = (_2) => {
1283
1290
  };
1284
1291
  return {
1285
1292
  pipeQueryResult,
1286
- pipeQueryTrigger,
1287
- destroy: () => {
1288
- }
1293
+ refetchQueries
1289
1294
  };
1290
1295
  };
1291
1296
  const difference = (a, b) => a.filter((element) => !b.includes(element));
@@ -1451,30 +1456,33 @@ const getInitialQueryEntity = ({ key }) => ({
1451
1456
  queryKey: key,
1452
1457
  runners: []
1453
1458
  });
1454
- const updateStoreWithQuery = ({
1459
+ const updateStoreWithNewQuery = ({
1455
1460
  queryStore,
1456
1461
  serializedKey,
1457
1462
  runner$,
1463
+ options$,
1458
1464
  key
1459
1465
  }) => (stream) => stream.pipe(
1460
- map((value) => {
1466
+ withLatestFrom(options$),
1467
+ map(([trigger2, options]) => {
1461
1468
  if (key.length === 0)
1462
- return [value, () => {
1463
- }];
1469
+ return [trigger2, void 0];
1470
+ if (trigger2.type !== "initial")
1471
+ return [trigger2, void 0];
1464
1472
  if (!queryStore.get(serializedKey)) {
1465
1473
  queryStore.set(serializedKey, getInitialQueryEntity({ key }));
1466
1474
  } else {
1467
1475
  queryStore.update(serializedKey, {
1468
1476
  queryKey: key,
1469
- ...value.options.markStale && {
1477
+ ...options.markStale && {
1470
1478
  isStale: true
1471
1479
  }
1472
1480
  });
1473
1481
  }
1474
- return [value, queryStore.addRunner(serializedKey, runner$)];
1482
+ return [trigger2, queryStore.addRunner(serializedKey, runner$)];
1475
1483
  })
1476
1484
  );
1477
- const logger = Logger.namespace("cache");
1485
+ const logger$1 = Logger.namespace("cache");
1478
1486
  const createCacheClient = ({
1479
1487
  queryStore
1480
1488
  }) => {
@@ -1485,7 +1493,7 @@ const createCacheClient = ({
1485
1493
  const serializedKey = serializeKey(queryKey);
1486
1494
  if (queryKey.length === 0)
1487
1495
  return;
1488
- logger.log("set cache for query", serializeKey);
1496
+ logger$1.log("set cache for query", serializeKey);
1489
1497
  if (!queryStore.get(serializedKey)) {
1490
1498
  queryStore.set(serializedKey, getInitialQueryEntity({ key: queryKey }));
1491
1499
  }
@@ -1518,47 +1526,107 @@ const createCacheClient = ({
1518
1526
  setQueryData
1519
1527
  };
1520
1528
  };
1529
+ const logger = Logger.namespace("refetch");
1530
+ const markQueryAsStaleIfRefetch = ({
1531
+ key,
1532
+ serializedKey,
1533
+ queryStore
1534
+ }) => (stream) => {
1535
+ return stream.pipe(
1536
+ tap((trigger2) => {
1537
+ if (trigger2.type !== "refetch")
1538
+ return;
1539
+ const query = queryStore.get(serializedKey);
1540
+ if (query && trigger2.ignoreStale && !query.isStale) {
1541
+ logger.log(key, "marked stale by trigger!");
1542
+ queryStore.update(serializedKey, {
1543
+ isStale: true
1544
+ });
1545
+ }
1546
+ })
1547
+ );
1548
+ };
1549
+ const dispatchExternalRefetchToAllQueries = ({
1550
+ queryStore,
1551
+ serializedKey
1552
+ }) => (stream) => stream.pipe(
1553
+ tap((trigger2) => {
1554
+ if (trigger2.type === "refetch") {
1555
+ queryStore.update(serializedKey, {
1556
+ deduplication_fn: void 0
1557
+ });
1558
+ queryStore.dispatchQueryTrigger({
1559
+ key: serializedKey,
1560
+ trigger: trigger2
1561
+ });
1562
+ }
1563
+ }),
1564
+ filter((trigger2) => trigger2.type !== "refetch")
1565
+ );
1521
1566
  const createClient = () => {
1522
1567
  const queryStore = createQueryStore();
1523
1568
  const invalidationClient = createInvalidationClient({ queryStore });
1524
1569
  const cacheClient = createCacheClient({ queryStore });
1525
- const refetchClient = createRefetchClient({ queryStore });
1526
- const query$ = ({
1570
+ const refetchClient = createRefetchClient();
1571
+ let hasCalledStart = false;
1572
+ const query = ({
1527
1573
  key,
1528
1574
  fn$: maybeFn$,
1529
1575
  fn: maybeFn,
1530
- refetch$ = new Subject(),
1576
+ trigger$: externalTrigger$ = new Subject(),
1531
1577
  options$ = new BehaviorSubject({})
1532
1578
  }) => {
1579
+ if (!hasCalledStart) {
1580
+ throw new Error("You forgot to start client");
1581
+ }
1533
1582
  const serializedKey = serializeKey(key);
1534
- const internalRefetch$ = new Subject();
1535
1583
  const fn$ = maybeFn$ ?? (maybeFn ? of(maybeFn) : NEVER);
1536
- Logger.log("query$()", serializedKey);
1584
+ Logger.log("query$)", serializedKey);
1537
1585
  const runner$ = options$.pipe(map((options) => ({ options })));
1538
1586
  let deleteRunner = () => {
1539
1587
  };
1540
- const initialTrigger$ = of({
1541
- type: "initial",
1542
- ignoreStale: false
1543
- });
1544
- const trigger$ = createQueryTrigger({
1545
- options$,
1546
- refetch$: merge(refetch$, internalRefetch$),
1547
- key: serializedKey,
1548
- queryStore
1549
- }).pipe(refetchClient.pipeQueryTrigger({ options$, key: serializedKey }));
1550
- const result$ = merge(initialTrigger$, trigger$).pipe(
1551
- withLatestFrom(fn$, options$),
1552
- map(([trigger2, fn, options]) => ({ trigger: trigger2, fn, options })),
1553
- updateStoreWithQuery({
1588
+ const trigger$ = merge(
1589
+ externalTrigger$.pipe(
1590
+ dispatchExternalRefetchToAllQueries({
1591
+ queryStore,
1592
+ serializedKey
1593
+ })
1594
+ ),
1595
+ createQueryTrigger({
1596
+ options$,
1597
+ key: serializedKey,
1598
+ queryStore
1599
+ })
1600
+ ).pipe(share());
1601
+ const result$ = merge(
1602
+ of({
1603
+ type: "initial"
1604
+ }),
1605
+ trigger$
1606
+ ).pipe(
1607
+ updateStoreWithNewQuery({
1554
1608
  key,
1555
1609
  queryStore,
1556
1610
  runner$,
1557
- serializedKey
1611
+ serializedKey,
1612
+ options$
1558
1613
  }),
1559
1614
  map(([value, deleteRunnerFn]) => {
1560
- deleteRunner = deleteRunnerFn;
1561
- Logger.log("reactjrx", serializedKey, "query trigger", {
1615
+ if (deleteRunnerFn) {
1616
+ deleteRunner = deleteRunnerFn;
1617
+ }
1618
+ return value;
1619
+ }),
1620
+ markQueryAsStaleIfRefetch({
1621
+ key,
1622
+ options$,
1623
+ queryStore,
1624
+ serializedKey
1625
+ }),
1626
+ withLatestFrom(fn$, options$),
1627
+ map(([trigger2, fn, options]) => ({ trigger: trigger2, fn, options })),
1628
+ map((value) => {
1629
+ Logger.log(serializedKey, "query trigger", {
1562
1630
  trigger: value.trigger,
1563
1631
  options: value.options
1564
1632
  });
@@ -1576,19 +1644,6 @@ const createClient = () => {
1576
1644
  trigger$
1577
1645
  })
1578
1646
  ),
1579
- // hooks
1580
- switchMap(
1581
- (result) => merge(
1582
- of(result).pipe(
1583
- refetchClient.pipeQueryResult({
1584
- key: serializedKey,
1585
- queryStore,
1586
- options$,
1587
- refetch$: internalRefetch$
1588
- })
1589
- )
1590
- )
1591
- ),
1592
1647
  mergeResults,
1593
1648
  withLatestFrom(options$),
1594
1649
  takeWhile(([result, options]) => {
@@ -1604,7 +1659,7 @@ const createClient = () => {
1604
1659
  result$
1605
1660
  };
1606
1661
  };
1607
- const queryListenerSub = createQueryListener(
1662
+ const queryListener$ = createQueryListener(
1608
1663
  queryStore,
1609
1664
  (stream) => stream.pipe(
1610
1665
  switchMap((key) => {
@@ -1622,17 +1677,25 @@ const createClient = () => {
1622
1677
  );
1623
1678
  })
1624
1679
  )
1625
- ).subscribe();
1680
+ );
1681
+ const start = () => {
1682
+ hasCalledStart = true;
1683
+ const queryListenerSub = queryListener$.subscribe();
1684
+ const started = [queryStore.start()];
1685
+ return () => {
1686
+ started.forEach((destroy) => {
1687
+ destroy();
1688
+ });
1689
+ queryListenerSub.unsubscribe();
1690
+ };
1691
+ };
1626
1692
  return {
1627
- query$,
1693
+ start,
1694
+ query,
1628
1695
  queryStore,
1629
1696
  ...invalidationClient,
1630
1697
  ...cacheClient,
1631
- ...refetchClient,
1632
- destroy: () => {
1633
- queryStore.destroy();
1634
- queryListenerSub.unsubscribe();
1635
- }
1698
+ ...refetchClient
1636
1699
  };
1637
1700
  };
1638
1701
  export {
@@ -1653,7 +1716,7 @@ export {
1653
1716
  useObserveCallback,
1654
1717
  usePersistSignalsContext,
1655
1718
  useQuery,
1656
- useReactJrxProvider,
1719
+ useQueryClient,
1657
1720
  useScopeSignals,
1658
1721
  useSetSignal,
1659
1722
  useSignal,
@@ -2,7 +2,6 @@ import { type Observable, BehaviorSubject } from "rxjs";
2
2
  import { type QueryOptions, type QueryFn, type QueryTrigger, type QueryResult } from "./types";
3
3
  import { type QueryKey } from "./keys/types";
4
4
  export declare const createClient: () => {
5
- destroy: () => void;
6
5
  pipeQueryResult: <R extends Partial<QueryResult<T>>, T>({ options$ }: {
7
6
  key: string;
8
7
  queryStore: {
@@ -22,15 +21,14 @@ export declare const createClient: () => {
22
21
  queryTrigger$: Observable<import("./store/createQueryStore").QueryTriggerEvent>;
23
22
  dispatchQueryTrigger: (event: import("./store/createQueryStore").QueryTriggerEvent) => void;
24
23
  size: () => number;
25
- destroy: () => void;
24
+ start: () => () => void;
26
25
  };
27
26
  options$: Observable<QueryOptions<T>>;
28
27
  refetch$: Observable<QueryTrigger>;
29
28
  }) => import("rxjs").MonoTypeOperatorFunction<R>;
30
- pipeQueryTrigger: <T_4>({ key }: {
31
- key: string;
32
- options$: Observable<QueryOptions<T_4>>;
33
- }) => import("rxjs").MonoTypeOperatorFunction<QueryTrigger>;
29
+ refetchQueries: (_: {
30
+ queryKey: QueryKey;
31
+ }) => void;
34
32
  setQueryData: ({ queryKey, updater }: {
35
33
  queryKey: QueryKey;
36
34
  updater: unknown;
@@ -40,16 +38,15 @@ export declare const createClient: () => {
40
38
  exact?: boolean | undefined;
41
39
  predicate?: ((storeObject: import("./store/createQueryStore").StoreObject<unknown>) => boolean) | undefined;
42
40
  }) => void;
43
- query$: <T_5>({ key, fn$: maybeFn$, fn: maybeFn, refetch$, options$ }: {
41
+ start: () => () => void;
42
+ query: <T_4>({ key, fn$: maybeFn$, fn: maybeFn, trigger$: externalTrigger$, options$ }: {
44
43
  key: QueryKey;
45
- fn?: QueryFn<T_5> | undefined;
46
- fn$?: Observable<QueryFn<T_5>> | undefined;
47
- refetch$?: Observable<{
48
- ignoreStale: boolean;
49
- }> | undefined;
50
- options$?: Observable<QueryOptions<T_5>> | undefined;
44
+ fn?: QueryFn<T_4> | undefined;
45
+ fn$?: Observable<QueryFn<T_4>> | undefined;
46
+ trigger$?: Observable<QueryTrigger> | undefined;
47
+ options$?: Observable<QueryOptions<T_4>> | undefined;
51
48
  }) => {
52
- result$: Observable<QueryResult<T_5>>;
49
+ result$: Observable<QueryResult<T_4>>;
53
50
  };
54
51
  queryStore: {
55
52
  set: (key: string, value: import("./store/createQueryStore").StoreObject<unknown>) => void;
@@ -68,6 +65,6 @@ export declare const createClient: () => {
68
65
  queryTrigger$: Observable<import("./store/createQueryStore").QueryTriggerEvent>;
69
66
  dispatchQueryTrigger: (event: import("./store/createQueryStore").QueryTriggerEvent) => void;
70
67
  size: () => number;
71
- destroy: () => void;
68
+ start: () => () => void;
72
69
  };
73
70
  };
@@ -8,5 +8,4 @@ export declare const createInvalidationClient: ({ queryStore }: {
8
8
  exact?: boolean | undefined;
9
9
  predicate?: ((storeObject: import("../store/createQueryStore").StoreObject<unknown>) => boolean) | undefined;
10
10
  }) => void;
11
- destroy: () => void;
12
11
  };
@@ -1,7 +1,8 @@
1
1
  import { type MonoTypeOperatorFunction, type Observable } from "rxjs";
2
2
  import { type createQueryStore } from "../store/createQueryStore";
3
3
  import { type QueryTrigger, type QueryOptions, type QueryResult } from "../types";
4
- export declare const createRefetchClient: ({ queryStore }: {
4
+ import { type QueryKey } from "../keys/types";
5
+ export declare const createRefetchClient: (_: {
5
6
  queryStore: ReturnType<typeof createQueryStore>;
6
7
  }) => {
7
8
  pipeQueryResult: <R extends Partial<QueryResult<T>>, T>({ options$ }: {
@@ -10,9 +11,7 @@ export declare const createRefetchClient: ({ queryStore }: {
10
11
  options$: Observable<QueryOptions<T>>;
11
12
  refetch$: Observable<QueryTrigger>;
12
13
  }) => MonoTypeOperatorFunction<R>;
13
- pipeQueryTrigger: <T_1>({ key }: {
14
- key: string;
15
- options$: Observable<QueryOptions<T_1>>;
16
- }) => MonoTypeOperatorFunction<QueryTrigger>;
17
- destroy: () => void;
14
+ refetchQueries: (_: {
15
+ queryKey: QueryKey;
16
+ }) => void;
18
17
  };
@@ -0,0 +1,3 @@
1
+ import { type MonoTypeOperatorFunction } from "rxjs";
2
+ import { type QueryPipelineParams, type QueryTrigger } from "../types";
3
+ export declare const dispatchExternalRefetchToAllQueries: <R>({ queryStore, serializedKey }: Pick<QueryPipelineParams<R>, "queryStore" | "serializedKey">) => MonoTypeOperatorFunction<QueryTrigger>;
@@ -0,0 +1,24 @@
1
+ export declare const logger: {
2
+ namespaces: {
3
+ name: string;
4
+ style: {
5
+ backgroundColor: string;
6
+ color: string;
7
+ };
8
+ }[];
9
+ namespace(name: string, style?: {
10
+ backgroundColor: string;
11
+ color: string;
12
+ } | undefined): any;
13
+ printNamespaces(): {
14
+ namespaces: string;
15
+ styles: string[];
16
+ };
17
+ print(method: "log" | "warn" | "error" | "group", ...message: any[]): any;
18
+ printWithoutNamespace(method: "log" | "warn" | "error" | "group", ...message: any[]): any;
19
+ log(...message: any): any;
20
+ warn(...message: any): any;
21
+ error(...message: any): any;
22
+ group(...message: any): any;
23
+ groupEnd(): any;
24
+ };
@@ -0,0 +1,3 @@
1
+ import { type MonoTypeOperatorFunction } from "rxjs";
2
+ import { type QueryPipelineParams, type QueryTrigger } from "../types";
3
+ export declare const markQueryAsStaleIfRefetch: <T>({ key, serializedKey, queryStore }: QueryPipelineParams<T>) => MonoTypeOperatorFunction<QueryTrigger>;
@@ -51,5 +51,5 @@ export declare const createQueryStore: () => {
51
51
  queryTrigger$: Observable<QueryTriggerEvent>;
52
52
  dispatchQueryTrigger: (event: QueryTriggerEvent) => void;
53
53
  size: () => number;
54
- destroy: () => void;
54
+ start: () => () => void;
55
55
  };