@ic-reactor/react 3.2.0 → 3.3.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/README.md +58 -4
- package/dist/createActorHooks.d.ts +1 -1
- package/dist/createActorHooks.d.ts.map +1 -1
- package/dist/createActorHooks.js +10 -25
- package/dist/createActorHooks.js.map +1 -1
- package/dist/createInfiniteQuery.d.ts.map +1 -1
- package/dist/createInfiniteQuery.js +2 -12
- package/dist/createInfiniteQuery.js.map +1 -1
- package/dist/createMutation.d.ts.map +1 -1
- package/dist/createMutation.js +39 -56
- package/dist/createMutation.js.map +1 -1
- package/dist/createQuery.d.ts.map +1 -1
- package/dist/createQuery.js +31 -39
- package/dist/createQuery.js.map +1 -1
- package/dist/createSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/createSuspenseInfiniteQuery.js +1 -14
- package/dist/createSuspenseInfiniteQuery.js.map +1 -1
- package/dist/createSuspenseQuery.d.ts.map +1 -1
- package/dist/createSuspenseQuery.js +30 -39
- package/dist/createSuspenseQuery.js.map +1 -1
- package/dist/hooks/useActorInfiniteQuery.d.ts.map +1 -1
- package/dist/hooks/useActorInfiniteQuery.js +4 -5
- package/dist/hooks/useActorInfiniteQuery.js.map +1 -1
- package/dist/hooks/useActorMutation.d.ts +9 -2
- package/dist/hooks/useActorMutation.d.ts.map +1 -1
- package/dist/hooks/useActorMutation.js +15 -15
- package/dist/hooks/useActorMutation.js.map +1 -1
- package/dist/hooks/useActorSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/hooks/useActorSuspenseInfiniteQuery.js +4 -5
- package/dist/hooks/useActorSuspenseInfiniteQuery.js.map +1 -1
- package/dist/types.d.ts +26 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +26 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +41 -0
- package/dist/utils.js.map +1 -0
- package/package.json +9 -9
- package/src/createActorHooks.ts +32 -31
- package/src/createInfiniteQuery.ts +2 -19
- package/src/createMutation.ts +52 -69
- package/src/createQuery.ts +41 -52
- package/src/createSuspenseInfiniteQuery.ts +1 -22
- package/src/createSuspenseQuery.ts +42 -56
- package/src/hooks/useActorInfiniteQuery.ts +4 -9
- package/src/hooks/useActorMutation.ts +40 -14
- package/src/hooks/useActorSuspenseInfiniteQuery.ts +4 -9
- package/src/types.ts +32 -0
- package/src/utils.ts +52 -0
package/README.md
CHANGED
|
@@ -81,8 +81,8 @@ export function App() {
|
|
|
81
81
|
|
|
82
82
|
- `createActorHooks(reactor)` for per-canister hooks like `useActorQuery` and
|
|
83
83
|
`useActorMutation`
|
|
84
|
-
- `createAuthHooks(clientManager)` for `useAuth`, `
|
|
85
|
-
`
|
|
84
|
+
- `createAuthHooks(clientManager)` for `useAuth`, `useAgentState`, and
|
|
85
|
+
`useUserPrincipal`
|
|
86
86
|
- direct reactor hooks like `useReactorQuery` when you want to pass the reactor
|
|
87
87
|
instance at call time
|
|
88
88
|
- factory helpers like `createQuery`, `createSuspenseQuery`,
|
|
@@ -93,8 +93,8 @@ export function App() {
|
|
|
93
93
|
|
|
94
94
|
- Use `createActorHooks` for the simplest component-first integration.
|
|
95
95
|
- Use query and mutation factories when you also need loader, action, service,
|
|
96
|
-
or test usage through `.fetch()`, `.execute()`, `.invalidate()`,
|
|
97
|
-
`.getCacheData()`.
|
|
96
|
+
or test usage through `.fetch()`, `.prefetch()`, `.execute()`, `.invalidate()`,
|
|
97
|
+
`.getCacheData()`, or `.setData()`.
|
|
98
98
|
- Use `DisplayReactor` when you want UI-friendly values such as strings instead
|
|
99
99
|
of `bigint` or `Principal`.
|
|
100
100
|
- Use generated hooks from `@ic-reactor/vite-plugin` or `@ic-reactor/cli` when
|
|
@@ -112,18 +112,72 @@ export const getProfile = createSuspenseQueryFactory(backend, {
|
|
|
112
112
|
|
|
113
113
|
export const updateProfile = createMutation(backend, {
|
|
114
114
|
functionName: "update_profile",
|
|
115
|
+
onCanisterError: (err) => console.error("Canister Err variant:", err.code),
|
|
115
116
|
})
|
|
116
117
|
```
|
|
117
118
|
|
|
118
119
|
```tsx
|
|
119
120
|
const profileQuery = getProfile(["alice"])
|
|
121
|
+
|
|
122
|
+
// React component
|
|
120
123
|
const { data } = profileQuery.useSuspenseQuery()
|
|
121
124
|
|
|
125
|
+
// Prefetch before navigating (fire-and-forget)
|
|
126
|
+
profileQuery.prefetch()
|
|
127
|
+
|
|
128
|
+
// Optimistic update
|
|
129
|
+
profileQuery.setData({ id: "alice", name: "Alice" })
|
|
130
|
+
|
|
131
|
+
// Mutation with cache invalidation
|
|
122
132
|
const mutation = updateProfile.useMutation({
|
|
123
133
|
invalidateQueries: [profileQuery.getQueryKey()],
|
|
124
134
|
})
|
|
125
135
|
```
|
|
126
136
|
|
|
137
|
+
## Query Result Methods
|
|
138
|
+
|
|
139
|
+
Every object returned by `createQuery`, `createSuspenseQuery`, and their
|
|
140
|
+
factory variants exposes:
|
|
141
|
+
|
|
142
|
+
| Method | Description |
|
|
143
|
+
| ----------------------------------- | ----------------------------------------------------------------------------------------------- |
|
|
144
|
+
| `fetch()` | Cache-first fetch — returns data, populates cache. Use in route loaders. |
|
|
145
|
+
| `prefetch()` | Fire-and-forget cache warm-up. Use on hover or before navigation. |
|
|
146
|
+
| `invalidate()` | Invalidates the cache entry (triggers refetch if query is mounted). |
|
|
147
|
+
| `getQueryKey()` | Returns the TanStack Query key for this query. |
|
|
148
|
+
| `getCacheData(select?)` | Read directly from cache without fetching. Returns `undefined` if not cached. |
|
|
149
|
+
| `setData(updater)` | Write raw data into the cache. Accepts a value or updater function. Use for optimistic updates. |
|
|
150
|
+
| `useQuery()` / `useSuspenseQuery()` | React hook for the query. |
|
|
151
|
+
|
|
152
|
+
## Canister Error Handling
|
|
153
|
+
|
|
154
|
+
Canister methods can return `Result { Err: E }` variants. These are surfaced
|
|
155
|
+
as `CanisterError` and can be handled separately from network or agent errors
|
|
156
|
+
via `onCanisterError`. This callback is supported on both `createMutation` and
|
|
157
|
+
the direct `useActorMutation` hook:
|
|
158
|
+
|
|
159
|
+
```tsx
|
|
160
|
+
// Via createActorHooks
|
|
161
|
+
const { mutate } = useActorMutation({
|
|
162
|
+
functionName: "transfer",
|
|
163
|
+
onCanisterError: (err, vars) => {
|
|
164
|
+
// err.code — the Err variant key (e.g. "InsufficientFunds")
|
|
165
|
+
// err.err — the typed Err value
|
|
166
|
+
console.error(`Transfer failed: ${err.code}`, vars)
|
|
167
|
+
},
|
|
168
|
+
onError: (err) => {
|
|
169
|
+
// Fires for ALL errors: canister Err variants, network failures, etc.
|
|
170
|
+
console.error("Unexpected error", err)
|
|
171
|
+
},
|
|
172
|
+
})
|
|
173
|
+
|
|
174
|
+
// Via createMutation factory
|
|
175
|
+
const transferMutation = createMutation(backend, {
|
|
176
|
+
functionName: "transfer",
|
|
177
|
+
onCanisterError: (err) => toast.error(`${err.code}`),
|
|
178
|
+
})
|
|
179
|
+
```
|
|
180
|
+
|
|
127
181
|
## Re-exports
|
|
128
182
|
|
|
129
183
|
`@ic-reactor/react` re-exports the core runtime, so you can import these from a
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { Reactor, DisplayReactor, ReactorReturnErr, ReactorReturnOk, BaseActor, FunctionName, TransformKey } from "@ic-reactor/core";
|
|
20
20
|
import { UseQueryResult, UseSuspenseQueryResult, UseInfiniteQueryResult, UseSuspenseInfiniteQueryResult, UseMutationResult, InfiniteData } from "@tanstack/react-query";
|
|
21
|
+
import { useActorMethod, UseActorMethodParameters } from "./hooks/useActorMethod";
|
|
21
22
|
import { InfiniteQueryConfig } from "./createInfiniteQuery";
|
|
22
23
|
import { SuspenseInfiniteQueryConfig } from "./createSuspenseInfiniteQuery";
|
|
23
|
-
import { useActorMethod, UseActorMethodParameters } from "./hooks/useActorMethod";
|
|
24
24
|
import { QueryConfig, SuspenseQueryConfig, MutationConfig } from "./types";
|
|
25
25
|
export type ActorHooks<A, T extends TransformKey> = {
|
|
26
26
|
useActorQuery: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createActorHooks.d.ts","sourceRoot":"","sources":["../src/createActorHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EACL,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,YAAY,EACZ,YAAY,EACb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,8BAA8B,EAC9B,iBAAiB,EACjB,YAAY,EACb,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"createActorHooks.d.ts","sourceRoot":"","sources":["../src/createActorHooks.ts"],"names":[],"mappings":"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"}
|
package/dist/createActorHooks.js
CHANGED
|
@@ -1,31 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { useActorQuery } from "./hooks/useActorQuery";
|
|
2
|
+
import { useActorSuspenseQuery } from "./hooks/useActorSuspenseQuery";
|
|
3
|
+
import { useActorInfiniteQuery } from "./hooks/useActorInfiniteQuery";
|
|
4
|
+
import { useActorSuspenseInfiniteQuery } from "./hooks/useActorSuspenseInfiniteQuery";
|
|
5
|
+
import { useActorMutation } from "./hooks/useActorMutation";
|
|
6
6
|
import { useActorMethod, } from "./hooks/useActorMethod";
|
|
7
7
|
export function createActorHooks(reactor) {
|
|
8
8
|
return {
|
|
9
|
-
useActorQuery: ((config) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}),
|
|
13
|
-
|
|
14
|
-
const { select, ...options } = config;
|
|
15
|
-
return createSuspenseQuery(reactor, config).useSuspenseQuery(options);
|
|
16
|
-
}),
|
|
17
|
-
useActorInfiniteQuery: ((config) => {
|
|
18
|
-
const { select, ...options } = config;
|
|
19
|
-
return createInfiniteQuery(reactor, config).useInfiniteQuery(options);
|
|
20
|
-
}),
|
|
21
|
-
useActorSuspenseInfiniteQuery: ((config) => {
|
|
22
|
-
const { select, ...options } = config;
|
|
23
|
-
return createSuspenseInfiniteQuery(reactor, config).useSuspenseInfiniteQuery(options);
|
|
24
|
-
}),
|
|
25
|
-
useActorMutation: ((config) => {
|
|
26
|
-
const { onSuccess, invalidateQueries, ...options } = config;
|
|
27
|
-
return createMutation(reactor, config).useMutation(options);
|
|
28
|
-
}),
|
|
9
|
+
useActorQuery: ((config) => useActorQuery({ ...config, reactor })),
|
|
10
|
+
useActorSuspenseQuery: ((config) => useActorSuspenseQuery({ ...config, reactor })),
|
|
11
|
+
useActorInfiniteQuery: ((config) => useActorInfiniteQuery({ ...config, reactor })),
|
|
12
|
+
useActorSuspenseInfiniteQuery: ((config) => useActorSuspenseInfiniteQuery({ ...config, reactor })),
|
|
13
|
+
useActorMutation: ((config) => useActorMutation({ ...config, reactor })),
|
|
29
14
|
useActorMethod: (config) => useActorMethod({ ...config, reactor }),
|
|
30
15
|
};
|
|
31
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createActorHooks.js","sourceRoot":"","sources":["../src/createActorHooks.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"createActorHooks.js","sourceRoot":"","sources":["../src/createActorHooks.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAA;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EACL,cAAc,GAEf,MAAM,wBAAwB,CAAA;AA8D/B,MAAM,UAAU,gBAAgB,CAC9B,OAAsB;IAEtB,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE,CAC9B,aAAa,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAGrB;QAElB,qBAAqB,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE,CACtC,qBAAqB,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAGrB;QAE1B,qBAAqB,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE,CACtC,qBAAqB,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAGrB;QAE1B,6BAA6B,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE,CAC9C,6BAA6B,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAGrB;QAElC,gBAAgB,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE,CACjC,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAGrB;QAErB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAIlC,CAAC;KACL,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,QAAQ,EAER,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EAGvB,4BAA4B,EAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"createInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,17 +22,7 @@
|
|
|
22
22
|
* postsQuery.invalidate()
|
|
23
23
|
*/
|
|
24
24
|
import { useInfiniteQuery, } from "@tanstack/react-query";
|
|
25
|
-
|
|
26
|
-
const mergeFactoryQueryKey = (baseQueryKey, keyArgs) => {
|
|
27
|
-
const merged = [];
|
|
28
|
-
if (baseQueryKey) {
|
|
29
|
-
merged.push(...baseQueryKey);
|
|
30
|
-
}
|
|
31
|
-
if (keyArgs !== undefined) {
|
|
32
|
-
merged.push({ [FACTORY_KEY_ARGS_QUERY_KEY]: keyArgs });
|
|
33
|
-
}
|
|
34
|
-
return merged.length > 0 ? merged : undefined;
|
|
35
|
-
};
|
|
25
|
+
import { mergeFactoryQueryKey } from "./utils";
|
|
36
26
|
// ============================================================================
|
|
37
27
|
// Internal Implementation
|
|
38
28
|
// ============================================================================
|
|
@@ -169,7 +159,7 @@ export function createInfiniteQueryFactory(reactor, config) {
|
|
|
169
159
|
const factory = (getArgs) => {
|
|
170
160
|
const initialArgs = getArgs(config.initialPageParam);
|
|
171
161
|
const keyArgs = config.getKeyArgs?.(initialArgs) ?? initialArgs;
|
|
172
|
-
const queryKey = mergeFactoryQueryKey(config.queryKey, keyArgs);
|
|
162
|
+
const queryKey = mergeFactoryQueryKey(config.queryKey, undefined, keyArgs);
|
|
173
163
|
return createInfiniteQueryImpl(reactor, {
|
|
174
164
|
...(({ getKeyArgs: _getKeyArgs, ...rest }) => rest)(config),
|
|
175
165
|
queryKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createInfiniteQuery.js","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH,OAAO,EAEL,gBAAgB,GAOjB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"createInfiniteQuery.js","sourceRoot":"","sources":["../src/createInfiniteQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH,OAAO,EAEL,gBAAgB,GAOjB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA+M9C,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,MAAM,uBAAuB,GAAG,CAO9B,OAAsB,EACtB,MAA2D,EAM3D,EAAE;IAKF,MAAM,EACJ,YAAY,EACZ,UAAU,EACV,QAAQ,EAAE,cAAc,EACxB,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EACzB,MAAM,EACN,GAAG,IAAI,EACR,GAAG,MAAM,CAAA;IAEV,mCAAmC;IACnC,MAAM,WAAW,GAAG,GAAa,EAAE;QACjC,OAAO,OAAO,CAAC,gBAAgB,CAC7B;YACE,YAAY;YACZ,QAAQ,EAAE,cAAc;SACzB,EACD,UAAU,CACX,CAAA;IACH,CAAC,CAAA;IAED,gDAAgD;IAChD,MAAM,OAAO,GAAG,KAAK,EACnB,OAAmD,EAC/B,EAAE;QACtB,8EAA8E;QAC9E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAuB,CAAA;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACtC,YAAY;YACZ,IAAI;YACJ,UAAU;SACX,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,oDAAoD;IACpD,MAAM,uBAAuB,GAAG,GAM9B,EAAE,CAAC,CAAC;QACJ,QAAQ,EAAE,WAAW,EAAE;QACvB,OAAO;QACP,gBAAgB;QAChB,gBAAgB;KACjB,CAAC,CAAA;IAEF,+DAA+D;IAC/D,MAAM,KAAK,GAAG,KAAK,IAAwB,EAAE;QAC3C,oBAAoB;QACpB,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,CAEpD,CAAA;QAEb,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,UAAwB,CAAA;QAChE,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,kBAAkB,CACzD,uBAAuB,EAAE,CAC1B,CAAA;QAED,wCAAwC;QACxC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAA+B,CAAA;IACnE,CAAC,CAAA;IAED,iBAAiB;IACjB,MAAM,oBAAoB,GAKtB,CAAC,OAAY,EAAO,EAAE;QACxB,4DAA4D;QAC5D,MAAM,aAAa,GAAG,CAAC,OAAsB,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;YACpD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAClC,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC,CAAA;QAED,OAAO,gBAAgB,CACrB;YACE,QAAQ,EAAE,WAAW,EAAE;YACvB,OAAO;YACP,gBAAgB;YAChB,gBAAgB;YAChB,oBAAoB;YACpB,QAAQ;YACR,SAAS;YACT,GAAG,IAAI;YACP,GAAG,OAAO;YACV,MAAM,EAAE,aAAa;SACf,EACR,OAAO,CAAC,WAAW,CACpB,CAAA;IACH,CAAC,CAAA;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAG,KAAK,IAAmB,EAAE;QAC3C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;QAC9B,MAAM,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC3D,CAAC,CAAA;IAED,uCAAuC;IACvC,MAAM,YAAY,GAAQ,CAAC,QAAmC,EAAE,EAAE;QAChE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;QAC9B,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CACpD,QAAQ,CACQ,CAAA;QAElB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,wCAAwC;QACxC,MAAM,YAAY,GAAG,CACnB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAClC,CAAA;QAEd,kCAAkC;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,YAAY,CAAA;IACrB,CAAC,CAAA;IAED,OAAO;QACL,KAAK;QACL,gBAAgB,EAAE,oBAAoB;QACtC,UAAU;QACV,WAAW;QACX,YAAY;KACb,CAAA;AACH,CAAC,CAAA;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,UAAU,mBAAmB,CAOjC,OAAsB,EACtB,MAAoE;IAOpE,OAAO,uBAAuB,CAC5B,OAAO,EACP,MAA6D,CAC9D,CAAA;AACH,CAAC;AAED,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,UAAU,0BAA0B,CAOxC,OAAsB,EACtB,MAA2E;IAE3E,MAAM,OAAO,GAA2D,CACtE,OAAwD,EACxD,EAAE;QACF,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,IAAI,WAAW,CAAA;QAC/D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAE1E,OAAO,uBAAuB,CAAiC,OAAO,EAAE;YACtE,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CACjD,MAAoE,CACrE;YACD,QAAQ;YACR,OAAO;SACR,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMutation.d.ts","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EAEZ,YAAY,EAEb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,OAAO,EACR,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"createMutation.d.ts","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EAEZ,YAAY,EAEb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,OAAO,EACR,MAAM,SAAS,CAAA;AAoHhB,wBAAgB,cAAc,CAC5B,CAAC,EACD,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAE3C,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACvC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEzB"}
|
package/dist/createMutation.js
CHANGED
|
@@ -16,91 +16,74 @@
|
|
|
16
16
|
import { useMutation } from "@tanstack/react-query";
|
|
17
17
|
import { isCanisterError } from "@ic-reactor/core";
|
|
18
18
|
// ============================================================================
|
|
19
|
+
// Internal helpers
|
|
20
|
+
// ============================================================================
|
|
21
|
+
/** Invalidate a list of query keys in parallel, filtering out undefineds. */
|
|
22
|
+
async function invalidateAll(queryClient, keys) {
|
|
23
|
+
await Promise.all(keys.map((queryKey) => queryKey ? queryClient.invalidateQueries({ queryKey }) : Promise.resolve()));
|
|
24
|
+
}
|
|
25
|
+
// ============================================================================
|
|
19
26
|
// Internal Implementation
|
|
20
27
|
// ============================================================================
|
|
21
28
|
const createMutationImpl = (reactor, config) => {
|
|
22
29
|
const { functionName, callConfig, invalidateQueries: factoryInvalidateQueries, onSuccess: factoryOnSuccess, onCanisterError: factoryOnCanisterError, onError: factoryOnError, ...factoryOptions } = config;
|
|
23
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Raw call without any invalidation logic.
|
|
32
|
+
* Used as mutationFn so that onSuccess handles all post-mutation work
|
|
33
|
+
* and there is no double-invalidation.
|
|
34
|
+
*/
|
|
35
|
+
const callFn = (args) => reactor.callMethod({ functionName, args, callConfig });
|
|
36
|
+
/**
|
|
37
|
+
* Imperative execution for non-React usage.
|
|
38
|
+
* Calls the canister method and invalidates factory-level queries.
|
|
39
|
+
* Use this in route loaders, scripts, or server-side code.
|
|
40
|
+
*/
|
|
24
41
|
const execute = async (args) => {
|
|
25
|
-
const result = await
|
|
26
|
-
functionName,
|
|
27
|
-
args,
|
|
28
|
-
callConfig,
|
|
29
|
-
});
|
|
42
|
+
const result = await callFn(args);
|
|
30
43
|
if (factoryInvalidateQueries) {
|
|
31
|
-
await
|
|
32
|
-
return reactor.queryClient.invalidateQueries({ queryKey });
|
|
33
|
-
}));
|
|
44
|
+
await invalidateAll(reactor.queryClient, factoryInvalidateQueries);
|
|
34
45
|
}
|
|
35
46
|
return result;
|
|
36
47
|
};
|
|
37
48
|
// Hook implementation
|
|
38
49
|
const useMutationHook = (options) => {
|
|
39
|
-
const baseOptions = reactor.getQueryOptions({
|
|
40
|
-
|
|
41
|
-
});
|
|
42
|
-
// Extract our custom options
|
|
43
|
-
const { invalidateQueries: hookInvalidateQueries, onCanisterError: hookOnCanisterError, ...restOptions } = options || {};
|
|
50
|
+
const baseOptions = reactor.getQueryOptions({ functionName });
|
|
51
|
+
const { invalidateQueries: hookInvalidateQueries, onCanisterError: hookOnCanisterError, ...restOptions } = options ?? {};
|
|
44
52
|
return useMutation({
|
|
45
53
|
mutationKey: baseOptions.queryKey,
|
|
46
54
|
...factoryOptions,
|
|
47
55
|
...restOptions,
|
|
48
|
-
|
|
56
|
+
// Use callFn (not execute) to avoid double-invalidation:
|
|
57
|
+
// factoryInvalidateQueries are handled in onSuccess below.
|
|
58
|
+
mutationFn: callFn,
|
|
49
59
|
onSuccess: async (...args) => {
|
|
50
|
-
// 1.
|
|
60
|
+
// 1. Factory-level invalidation
|
|
51
61
|
if (factoryInvalidateQueries) {
|
|
52
|
-
await
|
|
53
|
-
return reactor.queryClient.invalidateQueries({ queryKey });
|
|
54
|
-
}));
|
|
62
|
+
await invalidateAll(reactor.queryClient, factoryInvalidateQueries);
|
|
55
63
|
}
|
|
56
|
-
// 2.
|
|
64
|
+
// 2. Hook-level invalidation
|
|
57
65
|
if (hookInvalidateQueries) {
|
|
58
|
-
await
|
|
59
|
-
if (queryKey) {
|
|
60
|
-
return reactor.queryClient.invalidateQueries({ queryKey });
|
|
61
|
-
}
|
|
62
|
-
return Promise.resolve();
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
// 3. Call factory onSuccess
|
|
66
|
-
if (factoryOnSuccess) {
|
|
67
|
-
await factoryOnSuccess(...args);
|
|
68
|
-
}
|
|
69
|
-
// 4. Call hook-local onSuccess
|
|
70
|
-
if (restOptions?.onSuccess) {
|
|
71
|
-
await restOptions.onSuccess(...args);
|
|
66
|
+
await invalidateAll(reactor.queryClient, hookInvalidateQueries);
|
|
72
67
|
}
|
|
68
|
+
// 3. Factory onSuccess
|
|
69
|
+
await factoryOnSuccess?.(...args);
|
|
70
|
+
// 4. Hook onSuccess
|
|
71
|
+
await restOptions.onSuccess?.(...args);
|
|
73
72
|
},
|
|
74
73
|
onError: (error, variables, context, mutation) => {
|
|
75
|
-
// Check if this is a CanisterError (from Result { Err: E })
|
|
76
74
|
if (isCanisterError(error)) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
factoryOnCanisterError(error, variables);
|
|
80
|
-
}
|
|
81
|
-
// 2. Call hook-level onCanisterError
|
|
82
|
-
if (hookOnCanisterError) {
|
|
83
|
-
hookOnCanisterError(error, variables);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
// 3. Call factory-level onError (for all errors)
|
|
87
|
-
if (factoryOnError) {
|
|
88
|
-
factoryOnError(error, variables, context, mutation);
|
|
89
|
-
}
|
|
90
|
-
// 4. Call hook-level onError (for all errors)
|
|
91
|
-
if (restOptions?.onError) {
|
|
92
|
-
restOptions.onError(error, variables, context, mutation);
|
|
75
|
+
factoryOnCanisterError?.(error, variables);
|
|
76
|
+
hookOnCanisterError?.(error, variables);
|
|
93
77
|
}
|
|
78
|
+
factoryOnError?.(error, variables, context, mutation);
|
|
79
|
+
restOptions.onError?.(error, variables, context, mutation);
|
|
94
80
|
},
|
|
95
81
|
}, reactor.queryClient);
|
|
96
82
|
};
|
|
97
|
-
return {
|
|
98
|
-
useMutation: useMutationHook,
|
|
99
|
-
execute,
|
|
100
|
-
};
|
|
83
|
+
return { useMutation: useMutationHook, execute };
|
|
101
84
|
};
|
|
102
85
|
// ============================================================================
|
|
103
|
-
// Factory Function
|
|
86
|
+
// Public Factory Function
|
|
104
87
|
// ============================================================================
|
|
105
88
|
export function createMutation(reactor, config) {
|
|
106
89
|
return createMutationImpl(reactor, config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMutation.js","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAQnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAQlD,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,MAAM,kBAAkB,GAAG,CAKzB,OAAsB,EACtB,MAA+B,EACN,EAAE;IAC3B,MAAM,EACJ,YAAY,EACZ,UAAU,EACV,iBAAiB,EAAE,wBAAwB,EAC3C,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EAAE,sBAAsB,EACvC,OAAO,EAAE,cAAc,EACvB,GAAG,cAAc,EAClB,GAAG,MAAM,CAAA;IAEV
|
|
1
|
+
{"version":3,"file":"createMutation.js","sourceRoot":"","sources":["../src/createMutation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createQuery.d.ts","sourceRoot":"","sources":["../src/createQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,YAAY,EACb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EAEX,WAAW,EACX,kBAAkB,EAClB,OAAO,EACR,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"createQuery.d.ts","sourceRoot":"","sources":["../src/createQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,YAAY,EACb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EAEX,WAAW,EACX,kBAAkB,EAClB,OAAO,EACR,MAAM,SAAS,CAAA;AAyGhB,wBAAgB,WAAW,CACzB,CAAC,EACD,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAC3C,SAAS,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAEhC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,GAC/C,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAEnE;AAMD,wBAAgB,kBAAkB,CAChC,CAAC,EACD,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAC3C,SAAS,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAEhC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,GACtD,CACD,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACvB,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAuBrE"}
|
package/dist/createQuery.js
CHANGED
|
@@ -14,74 +14,66 @@
|
|
|
14
14
|
* const { data: user } = userQuery.useQuery()
|
|
15
15
|
*/
|
|
16
16
|
import { useQuery } from "@tanstack/react-query";
|
|
17
|
+
import { buildChainedSelect } from "./utils";
|
|
17
18
|
// ============================================================================
|
|
18
19
|
// Internal Implementation
|
|
19
20
|
// ============================================================================
|
|
20
21
|
const createQueryImpl = (reactor, config) => {
|
|
21
22
|
const { functionName, args, staleTime = 5 * 60 * 1000, select, queryKey: customQueryKey, ...rest } = config;
|
|
22
|
-
const params = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// Get query key from actor manager
|
|
28
|
-
const getQueryKey = () => {
|
|
29
|
-
return reactor.generateQueryKey(params);
|
|
30
|
-
};
|
|
31
|
-
// Fetch function for loaders (cache-first)
|
|
23
|
+
const params = { functionName, args, queryKey: customQueryKey };
|
|
24
|
+
const getQueryKey = () => reactor.generateQueryKey(params);
|
|
25
|
+
// Apply config.select to raw data (shared by fetch, getCacheData, and the hook)
|
|
26
|
+
const applySelect = (raw) => select ? select(raw) : raw;
|
|
27
|
+
/** Cache-first fetch for use in loaders / route preloading. */
|
|
32
28
|
const fetch = async () => {
|
|
33
29
|
const result = await reactor.fetchQuery(params);
|
|
34
|
-
return
|
|
30
|
+
return applySelect(result);
|
|
31
|
+
};
|
|
32
|
+
/** Fire-and-forget prefetch — warms the cache without blocking. */
|
|
33
|
+
const prefetch = () => {
|
|
34
|
+
const baseOptions = reactor.getQueryOptions(params);
|
|
35
|
+
return reactor.queryClient.prefetchQuery({
|
|
36
|
+
queryKey: baseOptions.queryKey,
|
|
37
|
+
queryFn: baseOptions.queryFn,
|
|
38
|
+
staleTime,
|
|
39
|
+
});
|
|
35
40
|
};
|
|
36
|
-
// Implementation
|
|
37
41
|
const useQueryHook = (options) => {
|
|
38
42
|
const baseOptions = reactor.getQueryOptions(params);
|
|
39
|
-
// Chain the selects: raw -> config.select -> options.select
|
|
40
|
-
const chainedSelect = (rawData) => {
|
|
41
|
-
const firstPass = config.select ? config.select(rawData) : rawData;
|
|
42
|
-
if (options?.select) {
|
|
43
|
-
return options.select(firstPass);
|
|
44
|
-
}
|
|
45
|
-
return firstPass;
|
|
46
|
-
};
|
|
47
43
|
return useQuery({
|
|
48
44
|
queryKey: baseOptions.queryKey,
|
|
49
45
|
staleTime,
|
|
50
46
|
...rest,
|
|
51
47
|
...options,
|
|
52
48
|
queryFn: baseOptions.queryFn,
|
|
53
|
-
select:
|
|
49
|
+
select: buildChainedSelect(select, options?.select),
|
|
54
50
|
}, reactor.queryClient);
|
|
55
51
|
};
|
|
56
|
-
// Invalidate function
|
|
57
52
|
const invalidate = async () => {
|
|
58
|
-
|
|
59
|
-
await reactor.queryClient.invalidateQueries({ queryKey });
|
|
53
|
+
await reactor.queryClient.invalidateQueries({ queryKey: getQueryKey() });
|
|
60
54
|
};
|
|
61
|
-
// Get data from cache without fetching
|
|
62
55
|
const getCacheData = (selectFn) => {
|
|
63
|
-
const
|
|
64
|
-
if (
|
|
56
|
+
const raw = reactor.getQueryData(params);
|
|
57
|
+
if (raw === undefined)
|
|
65
58
|
return undefined;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return selectFn(selectedData);
|
|
72
|
-
}
|
|
73
|
-
return selectedData;
|
|
59
|
+
const selected = applySelect(raw);
|
|
60
|
+
return selectFn ? selectFn(selected) : selected;
|
|
61
|
+
};
|
|
62
|
+
const setData = (updater) => {
|
|
63
|
+
return reactor.queryClient.setQueryData(getQueryKey(), updater);
|
|
74
64
|
};
|
|
75
65
|
return {
|
|
76
66
|
fetch,
|
|
67
|
+
prefetch,
|
|
77
68
|
useQuery: useQueryHook,
|
|
78
69
|
invalidate,
|
|
79
70
|
getQueryKey,
|
|
80
71
|
getCacheData,
|
|
72
|
+
setData,
|
|
81
73
|
};
|
|
82
74
|
};
|
|
83
75
|
// ============================================================================
|
|
84
|
-
// Factory Function
|
|
76
|
+
// Public Factory Function
|
|
85
77
|
// ============================================================================
|
|
86
78
|
export function createQuery(reactor, config) {
|
|
87
79
|
return createQueryImpl(reactor, config);
|
|
@@ -97,9 +89,9 @@ export function createQueryFactory(reactor, config) {
|
|
|
97
89
|
args,
|
|
98
90
|
});
|
|
99
91
|
const cacheKey = JSON.stringify(key);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
92
|
+
const existing = cache.get(cacheKey);
|
|
93
|
+
if (existing)
|
|
94
|
+
return existing;
|
|
103
95
|
const result = createQueryImpl(reactor, {
|
|
104
96
|
...config,
|
|
105
97
|
args,
|
package/dist/createQuery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createQuery.js","sourceRoot":"","sources":["../src/createQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,EAAY,QAAQ,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"createQuery.js","sourceRoot":"","sources":["../src/createQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSuspenseInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createSuspenseInfiniteQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,QAAQ,EAER,YAAY,EACZ,8BAA8B,EAC9B,+BAA+B,EAG/B,4BAA4B,EAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"createSuspenseInfiniteQuery.d.ts","sourceRoot":"","sources":["../src/createSuspenseInfiniteQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,20 +24,7 @@
|
|
|
24
24
|
* const allPosts = data.pages.flatMap(page => page.posts)
|
|
25
25
|
*/
|
|
26
26
|
import { useSuspenseInfiniteQuery, } from "@tanstack/react-query";
|
|
27
|
-
|
|
28
|
-
const mergeFactoryQueryKey = (baseQueryKey, callQueryKey, keyArgs) => {
|
|
29
|
-
const merged = [];
|
|
30
|
-
if (baseQueryKey) {
|
|
31
|
-
merged.push(...baseQueryKey);
|
|
32
|
-
}
|
|
33
|
-
if (callQueryKey) {
|
|
34
|
-
merged.push(...callQueryKey);
|
|
35
|
-
}
|
|
36
|
-
if (keyArgs !== undefined) {
|
|
37
|
-
merged.push({ [FACTORY_KEY_ARGS_QUERY_KEY]: keyArgs });
|
|
38
|
-
}
|
|
39
|
-
return merged.length > 0 ? merged : undefined;
|
|
40
|
-
};
|
|
27
|
+
import { mergeFactoryQueryKey } from "./utils";
|
|
41
28
|
// ============================================================================
|
|
42
29
|
// Internal Implementation
|
|
43
30
|
// ============================================================================
|