reactjrx 1.40.1 → 1.41.0

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.cjs CHANGED
@@ -597,27 +597,35 @@ function useAsyncQuery(query, mapOperatorOrOptions, options = {}) {
597
597
  const Context = react.createContext({
598
598
  client: null
599
599
  });
600
+ const ClientEffect = ({
601
+ client
602
+ }) => {
603
+ react.useEffect(() => {
604
+ const destroy = client.start();
605
+ return () => {
606
+ destroy();
607
+ };
608
+ }, [client]);
609
+ return null;
610
+ };
600
611
  const Provider = react.memo(
601
612
  ({
602
613
  children,
603
614
  client
604
615
  }) => {
605
616
  const value = react.useMemo(() => ({ client }), [client]);
606
- react.useEffect(
607
- () => () => {
608
- client.destroy();
609
- },
610
- [client]
611
- );
612
- return /* @__PURE__ */ jsxRuntime.jsx(Context.Provider, { value, children });
617
+ return /* @__PURE__ */ jsxRuntime.jsxs(Context.Provider, { value, children: [
618
+ /* @__PURE__ */ jsxRuntime.jsx(ClientEffect, { client: value.client }),
619
+ children
620
+ ] });
613
621
  }
614
622
  );
615
- const useReactJrxProvider = () => {
623
+ const useQueryClient = () => {
616
624
  const context = react.useContext(Context);
617
625
  if (context === null) {
618
626
  throw new Error("You forgot to register the provider");
619
627
  }
620
- return { ...context };
628
+ return context.client;
621
629
  };
622
630
  const arrayEqual = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);
623
631
  function isDefined(arg) {
@@ -677,7 +685,7 @@ function useQuery({
677
685
  ...options
678
686
  }) {
679
687
  const internalRefresh$ = useSubject();
680
- const { client } = useReactJrxProvider();
688
+ const client = useQueryClient();
681
689
  const params$ = useQueryParams({ queryFn, queryKey, ...options });
682
690
  const result = useObserve(
683
691
  () => {
@@ -855,7 +863,7 @@ function createLogger(env) {
855
863
  };
856
864
  return _logger;
857
865
  }
858
- const Logger = createLogger("development");
866
+ const Logger = createLogger("production");
859
867
  const logger$3 = Logger.namespace("store");
860
868
  const createDebugger = (store$) => {
861
869
  return store$.pipe(
@@ -936,7 +944,12 @@ const createQueryStore = () => {
936
944
  }));
937
945
  };
938
946
  };
939
- const debugger$ = createDebugger(store$);
947
+ const start = () => {
948
+ const debugger$ = createDebugger(store$);
949
+ return () => {
950
+ debugger$.unsubscribe();
951
+ };
952
+ };
940
953
  return {
941
954
  set: setValue,
942
955
  get: getValue,
@@ -956,11 +969,7 @@ const createQueryStore = () => {
956
969
  queryTriggerSubject.next(event);
957
970
  },
958
971
  size: () => store.size,
959
- destroy: () => {
960
- debugger$.unsubscribe();
961
- queryEventSubject.complete();
962
- queryTriggerSubject.complete();
963
- }
972
+ start
964
973
  };
965
974
  };
966
975
  const createQueryTrigger = ({
@@ -1185,6 +1194,12 @@ const compareKeys = (keyA, keyB, { exact = false } = {}) => {
1185
1194
  return keyA.reduce((acc, value, index) => {
1186
1195
  if (!acc)
1187
1196
  return false;
1197
+ if (value === void 0) {
1198
+ const hasNextItemInLineNotUndefined = keyA.slice(index, keyA.length - 1).some((item) => item !== void 0);
1199
+ if (!hasNextItemInLineNotUndefined) {
1200
+ return true;
1201
+ }
1202
+ }
1188
1203
  return serializeObject(value) === serializeObject(keyB[index]);
1189
1204
  }, true);
1190
1205
  };
@@ -1228,9 +1243,7 @@ const createInvalidationClient = ({
1228
1243
  });
1229
1244
  };
1230
1245
  return {
1231
- invalidateQueries,
1232
- destroy: () => {
1233
- }
1246
+ invalidateQueries
1234
1247
  };
1235
1248
  };
1236
1249
  const logger$1 = Logger.namespace("refetch");
@@ -1285,9 +1298,7 @@ const createRefetchClient = ({
1285
1298
  };
1286
1299
  return {
1287
1300
  pipeQueryResult,
1288
- pipeQueryTrigger,
1289
- destroy: () => {
1290
- }
1301
+ pipeQueryTrigger
1291
1302
  };
1292
1303
  };
1293
1304
  const difference = (a, b) => a.filter((element) => !b.includes(element));
@@ -1453,13 +1464,15 @@ const getInitialQueryEntity = ({ key }) => ({
1453
1464
  queryKey: key,
1454
1465
  runners: []
1455
1466
  });
1456
- const updateStoreWithQuery = ({
1467
+ const updateStoreWithNewQuery = ({
1457
1468
  queryStore,
1458
1469
  serializedKey,
1459
1470
  runner$,
1471
+ options$,
1460
1472
  key
1461
1473
  }) => (stream) => stream.pipe(
1462
- rxjs.map((value) => {
1474
+ rxjs.withLatestFrom(options$),
1475
+ rxjs.map(([value, options]) => {
1463
1476
  if (key.length === 0)
1464
1477
  return [value, () => {
1465
1478
  }];
@@ -1468,7 +1481,7 @@ const updateStoreWithQuery = ({
1468
1481
  } else {
1469
1482
  queryStore.update(serializedKey, {
1470
1483
  queryKey: key,
1471
- ...value.options.markStale && {
1484
+ ...options.markStale && {
1472
1485
  isStale: true
1473
1486
  }
1474
1487
  });
@@ -1549,17 +1562,25 @@ const createClient = () => {
1549
1562
  key: serializedKey,
1550
1563
  queryStore
1551
1564
  }).pipe(refetchClient.pipeQueryTrigger({ options$, key: serializedKey }));
1552
- const result$ = rxjs.merge(initialTrigger$, trigger$).pipe(
1565
+ const result$ = rxjs.merge(
1566
+ initialTrigger$.pipe(
1567
+ updateStoreWithNewQuery({
1568
+ key,
1569
+ queryStore,
1570
+ runner$,
1571
+ serializedKey,
1572
+ options$
1573
+ }),
1574
+ rxjs.map(([value, deleteRunnerFn]) => {
1575
+ deleteRunner = deleteRunnerFn;
1576
+ return value;
1577
+ })
1578
+ ),
1579
+ trigger$
1580
+ ).pipe(
1553
1581
  rxjs.withLatestFrom(fn$, options$),
1554
1582
  rxjs.map(([trigger2, fn, options]) => ({ trigger: trigger2, fn, options })),
1555
- updateStoreWithQuery({
1556
- key,
1557
- queryStore,
1558
- runner$,
1559
- serializedKey
1560
- }),
1561
- rxjs.map(([value, deleteRunnerFn]) => {
1562
- deleteRunner = deleteRunnerFn;
1583
+ rxjs.map((value) => {
1563
1584
  Logger.log("reactjrx", serializedKey, "query trigger", {
1564
1585
  trigger: value.trigger,
1565
1586
  options: value.options
@@ -1606,7 +1627,7 @@ const createClient = () => {
1606
1627
  result$
1607
1628
  };
1608
1629
  };
1609
- const queryListenerSub = createQueryListener(
1630
+ const queryListener$ = createQueryListener(
1610
1631
  queryStore,
1611
1632
  (stream) => stream.pipe(
1612
1633
  rxjs.switchMap((key) => {
@@ -1624,17 +1645,24 @@ const createClient = () => {
1624
1645
  );
1625
1646
  })
1626
1647
  )
1627
- ).subscribe();
1648
+ );
1649
+ const start = () => {
1650
+ const queryListenerSub = queryListener$.subscribe();
1651
+ const started = [queryStore.start()];
1652
+ return () => {
1653
+ started.forEach((destroy) => {
1654
+ destroy();
1655
+ });
1656
+ queryListenerSub.unsubscribe();
1657
+ };
1658
+ };
1628
1659
  return {
1660
+ start,
1629
1661
  query$,
1630
1662
  queryStore,
1631
1663
  ...invalidationClient,
1632
1664
  ...cacheClient,
1633
- ...refetchClient,
1634
- destroy: () => {
1635
- queryStore.destroy();
1636
- queryListenerSub.unsubscribe();
1637
- }
1665
+ ...refetchClient
1638
1666
  };
1639
1667
  };
1640
1668
  exports.PersistSignals = PersistSignals;
@@ -1654,7 +1682,7 @@ exports.useObserve = useObserve;
1654
1682
  exports.useObserveCallback = useObserveCallback;
1655
1683
  exports.usePersistSignalsContext = usePersistSignalsContext;
1656
1684
  exports.useQuery = useQuery;
1657
- exports.useReactJrxProvider = useReactJrxProvider;
1685
+ exports.useQueryClient = useQueryClient;
1658
1686
  exports.useScopeSignals = useScopeSignals;
1659
1687
  exports.useSetSignal = useSetSignal;
1660
1688
  exports.useSignal = useSignal;
package/dist/index.d.ts CHANGED
@@ -20,4 +20,4 @@ export * from "./lib/queries/react/useAsyncQuery";
20
20
  export * from "./lib/queries/react/useQuery";
21
21
  export * from "./lib/queries/react/useSubscribeEffect";
22
22
  export * from "./lib/queries/client/createClient";
23
- export { Provider as ReactjrxQueryProvider, useReactJrxProvider } from "./lib/queries/react/Provider";
23
+ export { Provider as ReactjrxQueryProvider, useQueryClient } from "./lib/queries/react/Provider";
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);
@@ -595,27 +595,35 @@ function useAsyncQuery(query, mapOperatorOrOptions, options = {}) {
595
595
  const Context = createContext({
596
596
  client: null
597
597
  });
598
+ const ClientEffect = ({
599
+ client
600
+ }) => {
601
+ useEffect(() => {
602
+ const destroy = client.start();
603
+ return () => {
604
+ destroy();
605
+ };
606
+ }, [client]);
607
+ return null;
608
+ };
598
609
  const Provider = memo(
599
610
  ({
600
611
  children,
601
612
  client
602
613
  }) => {
603
614
  const value = useMemo(() => ({ client }), [client]);
604
- useEffect(
605
- () => () => {
606
- client.destroy();
607
- },
608
- [client]
609
- );
610
- return /* @__PURE__ */ jsx(Context.Provider, { value, children });
615
+ return /* @__PURE__ */ jsxs(Context.Provider, { value, children: [
616
+ /* @__PURE__ */ jsx(ClientEffect, { client: value.client }),
617
+ children
618
+ ] });
611
619
  }
612
620
  );
613
- const useReactJrxProvider = () => {
621
+ const useQueryClient = () => {
614
622
  const context = useContext(Context);
615
623
  if (context === null) {
616
624
  throw new Error("You forgot to register the provider");
617
625
  }
618
- return { ...context };
626
+ return context.client;
619
627
  };
620
628
  const arrayEqual = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);
621
629
  function isDefined(arg) {
@@ -675,7 +683,7 @@ function useQuery({
675
683
  ...options
676
684
  }) {
677
685
  const internalRefresh$ = useSubject();
678
- const { client } = useReactJrxProvider();
686
+ const client = useQueryClient();
679
687
  const params$ = useQueryParams({ queryFn, queryKey, ...options });
680
688
  const result = useObserve(
681
689
  () => {
@@ -853,7 +861,7 @@ function createLogger(env) {
853
861
  };
854
862
  return _logger;
855
863
  }
856
- const Logger = createLogger("development");
864
+ const Logger = createLogger("production");
857
865
  const logger$3 = Logger.namespace("store");
858
866
  const createDebugger = (store$) => {
859
867
  return store$.pipe(
@@ -934,7 +942,12 @@ const createQueryStore = () => {
934
942
  }));
935
943
  };
936
944
  };
937
- const debugger$ = createDebugger(store$);
945
+ const start = () => {
946
+ const debugger$ = createDebugger(store$);
947
+ return () => {
948
+ debugger$.unsubscribe();
949
+ };
950
+ };
938
951
  return {
939
952
  set: setValue,
940
953
  get: getValue,
@@ -954,11 +967,7 @@ const createQueryStore = () => {
954
967
  queryTriggerSubject.next(event);
955
968
  },
956
969
  size: () => store.size,
957
- destroy: () => {
958
- debugger$.unsubscribe();
959
- queryEventSubject.complete();
960
- queryTriggerSubject.complete();
961
- }
970
+ start
962
971
  };
963
972
  };
964
973
  const createQueryTrigger = ({
@@ -1183,6 +1192,12 @@ const compareKeys = (keyA, keyB, { exact = false } = {}) => {
1183
1192
  return keyA.reduce((acc, value, index) => {
1184
1193
  if (!acc)
1185
1194
  return false;
1195
+ if (value === void 0) {
1196
+ const hasNextItemInLineNotUndefined = keyA.slice(index, keyA.length - 1).some((item) => item !== void 0);
1197
+ if (!hasNextItemInLineNotUndefined) {
1198
+ return true;
1199
+ }
1200
+ }
1186
1201
  return serializeObject(value) === serializeObject(keyB[index]);
1187
1202
  }, true);
1188
1203
  };
@@ -1226,9 +1241,7 @@ const createInvalidationClient = ({
1226
1241
  });
1227
1242
  };
1228
1243
  return {
1229
- invalidateQueries,
1230
- destroy: () => {
1231
- }
1244
+ invalidateQueries
1232
1245
  };
1233
1246
  };
1234
1247
  const logger$1 = Logger.namespace("refetch");
@@ -1283,9 +1296,7 @@ const createRefetchClient = ({
1283
1296
  };
1284
1297
  return {
1285
1298
  pipeQueryResult,
1286
- pipeQueryTrigger,
1287
- destroy: () => {
1288
- }
1299
+ pipeQueryTrigger
1289
1300
  };
1290
1301
  };
1291
1302
  const difference = (a, b) => a.filter((element) => !b.includes(element));
@@ -1451,13 +1462,15 @@ const getInitialQueryEntity = ({ key }) => ({
1451
1462
  queryKey: key,
1452
1463
  runners: []
1453
1464
  });
1454
- const updateStoreWithQuery = ({
1465
+ const updateStoreWithNewQuery = ({
1455
1466
  queryStore,
1456
1467
  serializedKey,
1457
1468
  runner$,
1469
+ options$,
1458
1470
  key
1459
1471
  }) => (stream) => stream.pipe(
1460
- map((value) => {
1472
+ withLatestFrom(options$),
1473
+ map(([value, options]) => {
1461
1474
  if (key.length === 0)
1462
1475
  return [value, () => {
1463
1476
  }];
@@ -1466,7 +1479,7 @@ const updateStoreWithQuery = ({
1466
1479
  } else {
1467
1480
  queryStore.update(serializedKey, {
1468
1481
  queryKey: key,
1469
- ...value.options.markStale && {
1482
+ ...options.markStale && {
1470
1483
  isStale: true
1471
1484
  }
1472
1485
  });
@@ -1547,17 +1560,25 @@ const createClient = () => {
1547
1560
  key: serializedKey,
1548
1561
  queryStore
1549
1562
  }).pipe(refetchClient.pipeQueryTrigger({ options$, key: serializedKey }));
1550
- const result$ = merge(initialTrigger$, trigger$).pipe(
1563
+ const result$ = merge(
1564
+ initialTrigger$.pipe(
1565
+ updateStoreWithNewQuery({
1566
+ key,
1567
+ queryStore,
1568
+ runner$,
1569
+ serializedKey,
1570
+ options$
1571
+ }),
1572
+ map(([value, deleteRunnerFn]) => {
1573
+ deleteRunner = deleteRunnerFn;
1574
+ return value;
1575
+ })
1576
+ ),
1577
+ trigger$
1578
+ ).pipe(
1551
1579
  withLatestFrom(fn$, options$),
1552
1580
  map(([trigger2, fn, options]) => ({ trigger: trigger2, fn, options })),
1553
- updateStoreWithQuery({
1554
- key,
1555
- queryStore,
1556
- runner$,
1557
- serializedKey
1558
- }),
1559
- map(([value, deleteRunnerFn]) => {
1560
- deleteRunner = deleteRunnerFn;
1581
+ map((value) => {
1561
1582
  Logger.log("reactjrx", serializedKey, "query trigger", {
1562
1583
  trigger: value.trigger,
1563
1584
  options: value.options
@@ -1604,7 +1625,7 @@ const createClient = () => {
1604
1625
  result$
1605
1626
  };
1606
1627
  };
1607
- const queryListenerSub = createQueryListener(
1628
+ const queryListener$ = createQueryListener(
1608
1629
  queryStore,
1609
1630
  (stream) => stream.pipe(
1610
1631
  switchMap((key) => {
@@ -1622,17 +1643,24 @@ const createClient = () => {
1622
1643
  );
1623
1644
  })
1624
1645
  )
1625
- ).subscribe();
1646
+ );
1647
+ const start = () => {
1648
+ const queryListenerSub = queryListener$.subscribe();
1649
+ const started = [queryStore.start()];
1650
+ return () => {
1651
+ started.forEach((destroy) => {
1652
+ destroy();
1653
+ });
1654
+ queryListenerSub.unsubscribe();
1655
+ };
1656
+ };
1626
1657
  return {
1658
+ start,
1627
1659
  query$,
1628
1660
  queryStore,
1629
1661
  ...invalidationClient,
1630
1662
  ...cacheClient,
1631
- ...refetchClient,
1632
- destroy: () => {
1633
- queryStore.destroy();
1634
- queryListenerSub.unsubscribe();
1635
- }
1663
+ ...refetchClient
1636
1664
  };
1637
1665
  };
1638
1666
  export {
@@ -1653,7 +1681,7 @@ export {
1653
1681
  useObserveCallback,
1654
1682
  usePersistSignalsContext,
1655
1683
  useQuery,
1656
- useReactJrxProvider,
1684
+ useQueryClient,
1657
1685
  useScopeSignals,
1658
1686
  useSetSignal,
1659
1687
  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,7 +21,7 @@ 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>;
@@ -40,6 +39,7 @@ export declare const createClient: () => {
40
39
  exact?: boolean | undefined;
41
40
  predicate?: ((storeObject: import("./store/createQueryStore").StoreObject<unknown>) => boolean) | undefined;
42
41
  }) => void;
42
+ start: () => () => void;
43
43
  query$: <T_5>({ key, fn$: maybeFn$, fn: maybeFn, refetch$, options$ }: {
44
44
  key: QueryKey;
45
45
  fn?: QueryFn<T_5> | undefined;
@@ -68,6 +68,6 @@ export declare const createClient: () => {
68
68
  queryTrigger$: Observable<import("./store/createQueryStore").QueryTriggerEvent>;
69
69
  dispatchQueryTrigger: (event: import("./store/createQueryStore").QueryTriggerEvent) => void;
70
70
  size: () => number;
71
- destroy: () => void;
71
+ start: () => () => void;
72
72
  };
73
73
  };
@@ -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
  };
@@ -14,5 +14,4 @@ export declare const createRefetchClient: ({ queryStore }: {
14
14
  key: string;
15
15
  options$: Observable<QueryOptions<T_1>>;
16
16
  }) => MonoTypeOperatorFunction<QueryTrigger>;
17
- destroy: () => void;
18
17
  };
@@ -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
  };
@@ -0,0 +1,7 @@
1
+ import { type OperatorFunction, type Observable } from "rxjs";
2
+ import { type QueryPipelineParams, type QueryOptions } from "../types";
3
+ export declare const updateStoreWithNewQuery: <T, R>({ queryStore, serializedKey, runner$, options$, key }: QueryPipelineParams<R> & {
4
+ runner$: Observable<{
5
+ options: QueryOptions<R>;
6
+ }>;
7
+ }) => OperatorFunction<T, [T, () => void]>;
@@ -1,5 +1,6 @@
1
1
  import { type Observable } from "rxjs";
2
2
  import { type QueryKey } from "./keys/types";
3
+ import { type QueryStore } from "./store/createQueryStore";
3
4
  export interface QueryResult<T> {
4
5
  data: {
5
6
  result: T;
@@ -19,6 +20,12 @@ export interface QueryCommand<T> {
19
20
  options$?: Observable<QueryOptions<T>>;
20
21
  }
21
22
  export type QueryFn<T> = (() => Promise<T>) | (() => Observable<T>) | Observable<T>;
23
+ export interface QueryPipelineParams<R> {
24
+ queryStore: QueryStore;
25
+ serializedKey: string;
26
+ key: QueryKey;
27
+ options$: Observable<QueryOptions<R>>;
28
+ }
22
29
  export interface QueryTrigger {
23
30
  type: string;
24
31
  ignoreStale: boolean;
@@ -7,6 +7,73 @@ export declare const Provider: import("react").MemoExoticComponent<({ children,
7
7
  children: ReactNode;
8
8
  client: ReturnType<typeof createClient>;
9
9
  }) => import("react/jsx-runtime").JSX.Element>;
10
- export declare const useReactJrxProvider: () => {
11
- client: ReturnType<typeof createClient>;
10
+ export declare const useQueryClient: () => {
11
+ pipeQueryResult: <R extends Partial<import("../client/types").QueryResult<T>>, T>({ options$ }: {
12
+ key: string;
13
+ queryStore: {
14
+ set: (key: string, value: import("../client/store/createQueryStore").StoreObject<unknown>) => void;
15
+ get: <T_1>(serializedKey: string) => import("../client/store/createQueryStore").StoreObject<T_1> | undefined;
16
+ get$: (key: string) => import("rxjs").Observable<import("../client/store/createQueryStore").StoreObject<unknown>>;
17
+ delete: (key: string) => void;
18
+ update: <T_2>(key: string, value: Partial<import("../client/store/createQueryStore").StoreObject<T_2>> | ((value: import("../client/store/createQueryStore").StoreObject<T_2>) => import("../client/store/createQueryStore").StoreObject<T_2>)) => void;
19
+ keys: () => IterableIterator<string>;
20
+ updateMany: (value: Partial<import("../client/store/createQueryStore").StoreObject<unknown>>, predicate?: (storeObject: import("../client/store/createQueryStore").StoreObject<unknown>) => boolean) => void;
21
+ addRunner: <T_3>(key: string, stream: import("rxjs").Observable<{
22
+ options: import("../client/types").QueryOptions<T_3>;
23
+ }>) => () => void;
24
+ store$: import("rxjs").BehaviorSubject<Map<string, import("rxjs").BehaviorSubject<import("../client/store/createQueryStore").StoreObject<unknown>>>>;
25
+ queryEvent$: import("rxjs").Observable<import("../client/store/createQueryStore").QueryEvent>;
26
+ dispatchQueryEvent: (event: import("../client/store/createQueryStore").QueryEvent) => void;
27
+ queryTrigger$: import("rxjs").Observable<import("../client/store/createQueryStore").QueryTriggerEvent>;
28
+ dispatchQueryTrigger: (event: import("../client/store/createQueryStore").QueryTriggerEvent) => void;
29
+ size: () => number;
30
+ start: () => () => void;
31
+ };
32
+ options$: import("rxjs").Observable<import("../client/types").QueryOptions<T>>;
33
+ refetch$: import("rxjs").Observable<import("../client/types").QueryTrigger>;
34
+ }) => import("rxjs").MonoTypeOperatorFunction<R>;
35
+ pipeQueryTrigger: <T_4>({ key }: {
36
+ key: string;
37
+ options$: import("rxjs").Observable<import("../client/types").QueryOptions<T_4>>;
38
+ }) => import("rxjs").MonoTypeOperatorFunction<import("../client/types").QueryTrigger>;
39
+ setQueryData: ({ queryKey, updater }: {
40
+ queryKey: import("../client/keys/types").QueryKey;
41
+ updater: unknown;
42
+ }) => void;
43
+ invalidateQueries: ({ queryKey, exact, predicate }?: {
44
+ queryKey?: import("../client/keys/types").QueryKey | undefined;
45
+ exact?: boolean | undefined;
46
+ predicate?: ((storeObject: import("../client/store/createQueryStore").StoreObject<unknown>) => boolean) | undefined;
47
+ }) => void;
48
+ start: () => () => void;
49
+ query$: <T_5>({ key, fn$: maybeFn$, fn: maybeFn, refetch$, options$ }: {
50
+ key: import("../client/keys/types").QueryKey;
51
+ fn?: import("../client/types").QueryFn<T_5> | undefined;
52
+ fn$?: import("rxjs").Observable<import("../client/types").QueryFn<T_5>> | undefined;
53
+ refetch$?: import("rxjs").Observable<{
54
+ ignoreStale: boolean;
55
+ }> | undefined;
56
+ options$?: import("rxjs").Observable<import("../client/types").QueryOptions<T_5>> | undefined;
57
+ }) => {
58
+ result$: import("rxjs").Observable<import("../client/types").QueryResult<T_5>>;
59
+ };
60
+ queryStore: {
61
+ set: (key: string, value: import("../client/store/createQueryStore").StoreObject<unknown>) => void;
62
+ get: <T_1>(serializedKey: string) => import("../client/store/createQueryStore").StoreObject<T_1> | undefined;
63
+ get$: (key: string) => import("rxjs").Observable<import("../client/store/createQueryStore").StoreObject<unknown>>;
64
+ delete: (key: string) => void;
65
+ update: <T_2>(key: string, value: Partial<import("../client/store/createQueryStore").StoreObject<T_2>> | ((value: import("../client/store/createQueryStore").StoreObject<T_2>) => import("../client/store/createQueryStore").StoreObject<T_2>)) => void;
66
+ keys: () => IterableIterator<string>;
67
+ updateMany: (value: Partial<import("../client/store/createQueryStore").StoreObject<unknown>>, predicate?: (storeObject: import("../client/store/createQueryStore").StoreObject<unknown>) => boolean) => void;
68
+ addRunner: <T_3>(key: string, stream: import("rxjs").Observable<{
69
+ options: import("../client/types").QueryOptions<T_3>;
70
+ }>) => () => void;
71
+ store$: import("rxjs").BehaviorSubject<Map<string, import("rxjs").BehaviorSubject<import("../client/store/createQueryStore").StoreObject<unknown>>>>;
72
+ queryEvent$: import("rxjs").Observable<import("../client/store/createQueryStore").QueryEvent>;
73
+ dispatchQueryEvent: (event: import("../client/store/createQueryStore").QueryEvent) => void;
74
+ queryTrigger$: import("rxjs").Observable<import("../client/store/createQueryStore").QueryTriggerEvent>;
75
+ dispatchQueryTrigger: (event: import("../client/store/createQueryStore").QueryTriggerEvent) => void;
76
+ size: () => number;
77
+ start: () => () => void;
78
+ };
12
79
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "reactjrx",
3
3
  "private": false,
4
- "version": "1.40.1",
4
+ "version": "1.41.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
@@ -41,7 +41,7 @@
41
41
  "@types/react-dom": "^18.0.11",
42
42
  "@typescript-eslint/eslint-plugin": "^5.59.0",
43
43
  "@vitejs/plugin-react": "^4.0.0",
44
- "eslint": "^8.38.0",
44
+ "eslint": "^8.47.0",
45
45
  "eslint-config-prettier": "^8.8.0",
46
46
  "eslint-config-standard-with-typescript": "^34.0.1",
47
47
  "eslint-plugin-import": "^2.27.5",
@@ -1,14 +0,0 @@
1
- import { type OperatorFunction, type Observable } from "rxjs";
2
- import { type QueryStore } from "./createQueryStore";
3
- import { type QueryOptions } from "../types";
4
- import { type QueryKey } from "../keys/types";
5
- export declare const updateStoreWithQuery: <T extends {
6
- options: QueryOptions<R>;
7
- }, R>({ queryStore, serializedKey, runner$, key }: {
8
- queryStore: QueryStore;
9
- serializedKey: string;
10
- key: QueryKey;
11
- runner$: Observable<{
12
- options: QueryOptions<R>;
13
- }>;
14
- }) => OperatorFunction<T, [T, () => void]>;