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 +71 -43
- package/dist/index.d.ts +1 -1
- package/dist/index.js +72 -44
- package/dist/lib/queries/client/createClient.d.ts +3 -3
- package/dist/lib/queries/client/invalidation/invalidationClient.d.ts +0 -1
- package/dist/lib/queries/client/refetch/client.d.ts +0 -1
- package/dist/lib/queries/client/store/createQueryStore.d.ts +1 -1
- package/dist/lib/queries/client/store/updateStoreWithNewQuery.d.ts +7 -0
- package/dist/lib/queries/client/types.d.ts +7 -0
- package/dist/lib/queries/react/Provider.d.ts +69 -2
- package/package.json +2 -2
- package/dist/lib/queries/client/store/updateStoreWithQuery.d.ts +0 -14
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
|
-
|
|
607
|
-
|
|
608
|
-
|
|
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
|
|
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
|
|
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
|
|
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("
|
|
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
|
|
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
|
-
|
|
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
|
|
1467
|
+
const updateStoreWithNewQuery = ({
|
|
1457
1468
|
queryStore,
|
|
1458
1469
|
serializedKey,
|
|
1459
1470
|
runner$,
|
|
1471
|
+
options$,
|
|
1460
1472
|
key
|
|
1461
1473
|
}) => (stream) => stream.pipe(
|
|
1462
|
-
rxjs.
|
|
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
|
-
...
|
|
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(
|
|
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
|
-
|
|
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
|
|
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
|
-
)
|
|
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.
|
|
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,
|
|
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
|
-
|
|
605
|
-
|
|
606
|
-
|
|
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
|
|
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
|
|
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
|
|
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("
|
|
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
|
|
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
|
-
|
|
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
|
|
1465
|
+
const updateStoreWithNewQuery = ({
|
|
1455
1466
|
queryStore,
|
|
1456
1467
|
serializedKey,
|
|
1457
1468
|
runner$,
|
|
1469
|
+
options$,
|
|
1458
1470
|
key
|
|
1459
1471
|
}) => (stream) => stream.pipe(
|
|
1460
|
-
|
|
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
|
-
...
|
|
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(
|
|
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
|
-
|
|
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
|
|
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
|
-
)
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
71
|
+
start: () => () => void;
|
|
72
72
|
};
|
|
73
73
|
};
|
|
@@ -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
|
|
11
|
-
|
|
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.
|
|
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.
|
|
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]>;
|