@ic-reactor/react 3.13.0 → 4.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +237 -787
- package/dist/index.d.ts +260 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +471 -23
- package/dist/index.js.map +1 -1
- package/llms.txt +82 -278
- package/package.json +11 -39
- package/src/index.tsx +612 -0
- package/dist/auth/auth-client-compat.d.ts +0 -122
- package/dist/auth/auth-client-compat.d.ts.map +0 -1
- package/dist/auth/auth-client-compat.js +0 -162
- package/dist/auth/auth-client-compat.js.map +0 -1
- package/dist/auth/authentication-manager.d.ts +0 -405
- package/dist/auth/authentication-manager.d.ts.map +0 -1
- package/dist/auth/authentication-manager.js +0 -1537
- package/dist/auth/authentication-manager.js.map +0 -1
- package/dist/auth/constants.d.ts +0 -24
- package/dist/auth/constants.d.ts.map +0 -1
- package/dist/auth/constants.js +0 -24
- package/dist/auth/constants.js.map +0 -1
- package/dist/auth/createIdentityAttributeHooks.d.ts +0 -14
- package/dist/auth/createIdentityAttributeHooks.d.ts.map +0 -1
- package/dist/auth/createIdentityAttributeHooks.js +0 -122
- package/dist/auth/createIdentityAttributeHooks.js.map +0 -1
- package/dist/auth/identity-attributes-manager.d.ts +0 -27
- package/dist/auth/identity-attributes-manager.d.ts.map +0 -1
- package/dist/auth/identity-attributes-manager.js +0 -191
- package/dist/auth/identity-attributes-manager.js.map +0 -1
- package/dist/auth/identity-attributes.d.ts +0 -19
- package/dist/auth/identity-attributes.d.ts.map +0 -1
- package/dist/auth/identity-attributes.js +0 -227
- package/dist/auth/identity-attributes.js.map +0 -1
- package/dist/auth/index.d.ts +0 -8
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -8
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/local-ii-probe.d.ts +0 -57
- package/dist/auth/local-ii-probe.d.ts.map +0 -1
- package/dist/auth/local-ii-probe.js +0 -121
- package/dist/auth/local-ii-probe.js.map +0 -1
- package/dist/auth/types.d.ts +0 -222
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js +0 -2
- package/dist/auth/types.js.map +0 -1
- package/dist/createActorHooks.d.ts +0 -41
- package/dist/createActorHooks.d.ts.map +0 -1
- package/dist/createActorHooks.js +0 -17
- package/dist/createActorHooks.js.map +0 -1
- package/dist/createInfiniteQuery.d.ts +0 -185
- package/dist/createInfiniteQuery.d.ts.map +0 -1
- package/dist/createInfiniteQuery.js +0 -198
- package/dist/createInfiniteQuery.js.map +0 -1
- package/dist/createMutation.d.ts +0 -33
- package/dist/createMutation.d.ts.map +0 -1
- package/dist/createMutation.js +0 -199
- package/dist/createMutation.js.map +0 -1
- package/dist/createQuery.d.ts +0 -63
- package/dist/createQuery.d.ts.map +0 -1
- package/dist/createQuery.js +0 -204
- package/dist/createQuery.js.map +0 -1
- package/dist/createReactorProvider.d.ts +0 -158
- package/dist/createReactorProvider.d.ts.map +0 -1
- package/dist/createReactorProvider.js +0 -256
- package/dist/createReactorProvider.js.map +0 -1
- package/dist/createSuspenseInfiniteQuery.d.ts +0 -154
- package/dist/createSuspenseInfiniteQuery.d.ts.map +0 -1
- package/dist/createSuspenseInfiniteQuery.js +0 -209
- package/dist/createSuspenseInfiniteQuery.js.map +0 -1
- package/dist/createSuspenseQuery.d.ts +0 -46
- package/dist/createSuspenseQuery.d.ts.map +0 -1
- package/dist/createSuspenseQuery.js +0 -158
- package/dist/createSuspenseQuery.js.map +0 -1
- package/dist/defineDisplayReactor.d.ts +0 -43
- package/dist/defineDisplayReactor.d.ts.map +0 -1
- package/dist/defineDisplayReactor.js +0 -42
- package/dist/defineDisplayReactor.js.map +0 -1
- package/dist/defineReactor.d.ts +0 -99
- package/dist/defineReactor.d.ts.map +0 -1
- package/dist/defineReactor.js +0 -15
- package/dist/defineReactor.js.map +0 -1
- package/dist/defineReactorShared.d.ts +0 -84
- package/dist/defineReactorShared.d.ts.map +0 -1
- package/dist/defineReactorShared.js +0 -139
- package/dist/defineReactorShared.js.map +0 -1
- package/dist/hooks/createAuthHooks.d.ts +0 -50
- package/dist/hooks/createAuthHooks.d.ts.map +0 -1
- package/dist/hooks/createAuthHooks.js +0 -291
- package/dist/hooks/createAuthHooks.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -21
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -24
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useActorInfiniteQuery.d.ts +0 -67
- package/dist/hooks/useActorInfiniteQuery.d.ts.map +0 -1
- package/dist/hooks/useActorInfiniteQuery.js +0 -89
- package/dist/hooks/useActorInfiniteQuery.js.map +0 -1
- package/dist/hooks/useActorMethod.d.ts +0 -148
- package/dist/hooks/useActorMethod.d.ts.map +0 -1
- package/dist/hooks/useActorMethod.js +0 -394
- package/dist/hooks/useActorMethod.js.map +0 -1
- package/dist/hooks/useActorMutation.d.ts +0 -51
- package/dist/hooks/useActorMutation.d.ts.map +0 -1
- package/dist/hooks/useActorMutation.js +0 -70
- package/dist/hooks/useActorMutation.js.map +0 -1
- package/dist/hooks/useActorQuery.d.ts +0 -45
- package/dist/hooks/useActorQuery.d.ts.map +0 -1
- package/dist/hooks/useActorQuery.js +0 -67
- package/dist/hooks/useActorQuery.js.map +0 -1
- package/dist/hooks/useActorSuspenseInfiniteQuery.d.ts +0 -51
- package/dist/hooks/useActorSuspenseInfiniteQuery.d.ts.map +0 -1
- package/dist/hooks/useActorSuspenseInfiniteQuery.js +0 -76
- package/dist/hooks/useActorSuspenseInfiniteQuery.js.map +0 -1
- package/dist/hooks/useActorSuspenseQuery.d.ts +0 -32
- package/dist/hooks/useActorSuspenseQuery.d.ts.map +0 -1
- package/dist/hooks/useActorSuspenseQuery.js +0 -58
- package/dist/hooks/useActorSuspenseQuery.js.map +0 -1
- package/dist/ownedAuthentication.d.ts +0 -52
- package/dist/ownedAuthentication.d.ts.map +0 -1
- package/dist/ownedAuthentication.js +0 -49
- package/dist/ownedAuthentication.js.map +0 -1
- package/dist/server.d.ts +0 -21
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -23
- package/dist/server.js.map +0 -1
- package/dist/testing.d.ts +0 -19
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.js +0 -19
- package/dist/testing.js.map +0 -1
- package/dist/types.d.ts +0 -671
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -5
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -207
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -405
- package/dist/utils.js.map +0 -1
- package/dist/validation.d.ts +0 -136
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -144
- package/dist/validation.js.map +0 -1
- package/src/auth/auth-client-compat.ts +0 -273
- package/src/auth/authentication-manager.ts +0 -1682
- package/src/auth/constants.ts +0 -32
- package/src/auth/createIdentityAttributeHooks.ts +0 -169
- package/src/auth/identity-attributes-manager.ts +0 -226
- package/src/auth/identity-attributes.ts +0 -345
- package/src/auth/index.ts +0 -7
- package/src/auth/local-ii-probe.ts +0 -173
- package/src/auth/types.ts +0 -243
- package/src/createActorHooks.ts +0 -208
- package/src/createInfiniteQuery.ts +0 -670
- package/src/createMutation.ts +0 -324
- package/src/createQuery.ts +0 -369
- package/src/createReactorProvider.ts +0 -365
- package/src/createSuspenseInfiniteQuery.ts +0 -651
- package/src/createSuspenseQuery.ts +0 -304
- package/src/defineDisplayReactor.ts +0 -62
- package/src/defineReactor.ts +0 -142
- package/src/defineReactorShared.ts +0 -268
- package/src/hooks/createAuthHooks.ts +0 -371
- package/src/hooks/index.ts +0 -103
- package/src/hooks/useActorInfiniteQuery.ts +0 -278
- package/src/hooks/useActorMethod.ts +0 -710
- package/src/hooks/useActorMutation.ts +0 -205
- package/src/hooks/useActorQuery.ts +0 -157
- package/src/hooks/useActorSuspenseInfiniteQuery.ts +0 -248
- package/src/hooks/useActorSuspenseQuery.ts +0 -147
- package/src/index.ts +0 -31
- package/src/ownedAuthentication.ts +0 -81
- package/src/server.ts +0 -23
- package/src/testing.ts +0 -18
- package/src/types.ts +0 -948
- package/src/utils.ts +0 -505
- package/src/validation.ts +0 -226
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { useCallback } from "react";
|
|
2
|
-
import { useMutation, } from "@tanstack/react-query";
|
|
3
|
-
import { isCanisterError, } from "@ic-reactor/core";
|
|
4
|
-
import { invalidateTargets, useMountQueryClient } from "../utils.js";
|
|
5
|
-
/**
|
|
6
|
-
* Hook for executing mutation calls on a canister.
|
|
7
|
-
* Use this for component-level mutation flows.
|
|
8
|
-
* For non-React usage, prefer `createMutation(...).execute(args)`.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* const { mutate, isPending } = useReactorMutation({
|
|
12
|
-
* reactor,
|
|
13
|
-
* functionName: "transfer",
|
|
14
|
-
* onSuccess: () => console.log("Success!"),
|
|
15
|
-
* onCanisterError: (err) => console.error("Canister Err:", err.code),
|
|
16
|
-
* })
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* const transferMutation = createMutation(reactor, {
|
|
20
|
-
* functionName: "transfer",
|
|
21
|
-
* onCanisterError: (err) => console.error(err.code),
|
|
22
|
-
* })
|
|
23
|
-
*
|
|
24
|
-
* // Non-React execution path
|
|
25
|
-
* await transferMutation.execute([{ to: "aaaaa-aa", amount: "100" }])
|
|
26
|
-
*/
|
|
27
|
-
export const useActorMutation = ({ reactor, functionName, invalidateQueries, onSuccess, onError, onCanisterError, callConfig, ...options }) => {
|
|
28
|
-
useMountQueryClient(reactor.queryClient);
|
|
29
|
-
const mutationFn = useCallback(async (args) => reactor.callMethod({ functionName, callConfig, args }), [reactor, functionName, callConfig]);
|
|
30
|
-
const handleSuccess = useCallback(async (...params) => {
|
|
31
|
-
// Undefined entries are skipped: React Query reads
|
|
32
|
-
// `{ queryKey: undefined }` as "match everything", and the natural
|
|
33
|
-
// `[maybeQuery]` idiom produces one whenever the query is absent.
|
|
34
|
-
await invalidateTargets(reactor, invalidateQueries, callConfig);
|
|
35
|
-
await onSuccess?.(...params);
|
|
36
|
-
}, [reactor, invalidateQueries, onSuccess, callConfig]);
|
|
37
|
-
const handleError = useCallback(async (error, variables, context, mutation) => {
|
|
38
|
-
if (isCanisterError(error)) {
|
|
39
|
-
onCanisterError?.(error, variables);
|
|
40
|
-
}
|
|
41
|
-
// Awaited like `onSuccess` above. TanStack Query waits for the promise
|
|
42
|
-
// `onError` returns before it runs `onSettled` and settles the mutation,
|
|
43
|
-
// and it can only wait for a promise this wrapper passes back.
|
|
44
|
-
await onError?.(error, variables, context, mutation);
|
|
45
|
-
}, [onCanisterError, onError]);
|
|
46
|
-
// Not memoized. The deps could only ever list the values destructured above,
|
|
47
|
-
// never the `options` rest bucket, so everything passed straight through —
|
|
48
|
-
// `onMutate`, `onSettled`, `retry`, `meta`, `gcTime` — was frozen at the first
|
|
49
|
-
// render: `useMutation` calls `observer.setOptions` from an effect keyed on
|
|
50
|
-
// the options identity, so a later render's closures never reached it. A
|
|
51
|
-
// component passing only `onSettled` would report the recipient selected at
|
|
52
|
-
// mount rather than at submit.
|
|
53
|
-
//
|
|
54
|
-
// `createMutation`'s own hook builds its options inline for the same reason.
|
|
55
|
-
// A fresh object per render costs nothing here: `setOptions` diffs the values
|
|
56
|
-
// rather than the reference.
|
|
57
|
-
return useMutation({
|
|
58
|
-
// Keyed like `createMutation`'s hook and `useActorMethod`'s mutations,
|
|
59
|
-
// so `useIsMutating({ mutationKey })`, `useMutationState` and defaults
|
|
60
|
-
// registered with `setMutationDefaults` can find this one too. An
|
|
61
|
-
// explicit `mutationKey` in the options still wins.
|
|
62
|
-
mutationKey: reactor.getQueryOptions({ functionName, callConfig })
|
|
63
|
-
.queryKey,
|
|
64
|
-
...options,
|
|
65
|
-
mutationFn,
|
|
66
|
-
onSuccess: handleSuccess,
|
|
67
|
-
onError: handleError,
|
|
68
|
-
}, reactor.queryClient);
|
|
69
|
-
};
|
|
70
|
-
//# sourceMappingURL=useActorMutation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useActorMutation.js","sourceRoot":"","sources":["../../src/hooks/useActorMutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EACL,WAAW,GAGZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAOL,eAAe,GAKhB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAoEpE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAK9B,EACA,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,eAAe,EACf,UAAU,EACV,GAAG,OAAO,EAMX,EAAuE,EAAE;IACxE,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAExC,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EAAE,IAA6C,EAAE,EAAE,CACtD,OAAO,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EACxD,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CACpC,CAAA;IAED,MAAM,aAAa,GAAG,WAAW,CAC/B,KAAK,EACH,GAAG,MASF,EACD,EAAE;QACF,mDAAmD;QACnD,mEAAmE;QACnE,kEAAkE;QAClE,MAAM,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAA;QAC/D,MAAM,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,CAAA;IAC9B,CAAC,EACD,CAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,CAAC,CACpD,CAAA;IAED,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,EACH,KAAmD,EACnD,SAAkD,EAClD,OAAgB,EAChB,QAAiB,EACjB,EAAE;QACF,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,eAAe,EAAE,CAAC,KAAY,EAAE,SAAS,CAAC,CAAA;QAC5C,CAAC;QACD,uEAAuE;QACvE,yEAAyE;QACzE,+DAA+D;QAC/D,MAAM,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAc,EAAE,QAAe,CAAC,CAAA;IACpE,CAAC,EACD,CAAC,eAAe,EAAE,OAAO,CAAC,CAC3B,CAAA;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E,+BAA+B;IAC/B,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,6BAA6B;IAC7B,OAAO,WAAW,CAChB;QACE,uEAAuE;QACvE,uEAAuE;QACvE,kEAAkE;QAClE,oDAAoD;QACpD,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;aAC/D,QAAQ;QACX,GAAG,OAAO;QACV,UAAU;QACV,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,WAAW;KACrB,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { QueryKey, QueryObserverOptions, UseQueryResult, type SkipToken } from "@tanstack/react-query";
|
|
2
|
-
import { FunctionName, Reactor, TransformKey, ReactorArgs, ReactorReturnOk, ReactorQueryData, ReactorReturnErr } from "@ic-reactor/core";
|
|
3
|
-
import { CallConfig } from "@icp-sdk/core/agent";
|
|
4
|
-
export interface UseActorQueryParameters<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>> extends Omit<QueryObserverOptions<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, ReactorReturnErr<Service, Method, Transform>, Selected, ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, QueryKey>, "queryKey" | "queryFn"> {
|
|
5
|
-
reactor: Reactor<Service, Transform>;
|
|
6
|
-
functionName: Method;
|
|
7
|
-
/**
|
|
8
|
-
* The method's arguments, or TanStack Query's `skipToken` while they are
|
|
9
|
-
* not known: the query then waits without fetching, in an entry of its own
|
|
10
|
-
* under its method's key, which no call's key shares, so it shows no data
|
|
11
|
-
* until the arguments arrive.
|
|
12
|
-
*/
|
|
13
|
-
args?: ReactorArgs<Service, Method, Transform> | SkipToken;
|
|
14
|
-
callConfig?: CallConfig;
|
|
15
|
-
queryKey?: QueryKey;
|
|
16
|
-
}
|
|
17
|
-
export type UseActorQueryConfig<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>> = Omit<UseActorQueryParameters<Service, Method, Transform, Selected>, "reactor">;
|
|
18
|
-
export type UseActorQueryResult<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>> = UseQueryResult<Selected, ReactorReturnErr<Service, Method, Transform>>;
|
|
19
|
-
/**
|
|
20
|
-
* Hook for executing query calls on a canister.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* const { data, isLoading } = useReactorQuery({
|
|
24
|
-
* reactor,
|
|
25
|
-
* functionName: "getUser",
|
|
26
|
-
* args: ["user-123"],
|
|
27
|
-
* })
|
|
28
|
-
*
|
|
29
|
-
* // With select transformation
|
|
30
|
-
* const { data } = useReactorQuery({
|
|
31
|
-
* reactor,
|
|
32
|
-
* functionName: "getUser",
|
|
33
|
-
* args: ["user-123"],
|
|
34
|
-
* select: (user) => user.name,
|
|
35
|
-
* })
|
|
36
|
-
*
|
|
37
|
-
* // Wait for the args: no fetch until userId is known
|
|
38
|
-
* const { data } = useReactorQuery({
|
|
39
|
-
* reactor,
|
|
40
|
-
* functionName: "getUser",
|
|
41
|
-
* args: userId ? [userId] : skipToken,
|
|
42
|
-
* })
|
|
43
|
-
*/
|
|
44
|
-
export declare const useActorQuery: <Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>>({ reactor, functionName, args, callConfig, queryKey: defaultQueryKey, ...options }: UseActorQueryParameters<Service, Method, Transform, Selected>) => UseActorQueryResult<Service, Method, Transform, Selected>;
|
|
45
|
-
//# sourceMappingURL=useActorQuery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useActorQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorQuery.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAGR,oBAAoB,EACpB,cAAc,EACd,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,MAAM,WAAW,uBAAuB,CACtC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CACxE,SAAQ,IAAI,CACZ,oBAAoB,CAClB,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,QAAQ,EACR,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,QAAQ,CACT,EACD,UAAU,GAAG,SAAS,CACvB;IACC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;IAC1D,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,MAAM,mBAAmB,CAC7B,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,IAAI,CACN,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC7D,SAAS,CACV,CAAA;AAED,MAAM,MAAM,mBAAmB,CAC7B,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,cAAc,CAAC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EACxE,oFAOC,uBAAuB,CACxB,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,CACT,KAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAgD3D,CAAA"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
2
|
-
import { useQuery, skipToken, } from "@tanstack/react-query";
|
|
3
|
-
import { retryOption, skippedQueryKey, useMountQueryClient } from "../utils.js";
|
|
4
|
-
/**
|
|
5
|
-
* Hook for executing query calls on a canister.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* const { data, isLoading } = useReactorQuery({
|
|
9
|
-
* reactor,
|
|
10
|
-
* functionName: "getUser",
|
|
11
|
-
* args: ["user-123"],
|
|
12
|
-
* })
|
|
13
|
-
*
|
|
14
|
-
* // With select transformation
|
|
15
|
-
* const { data } = useReactorQuery({
|
|
16
|
-
* reactor,
|
|
17
|
-
* functionName: "getUser",
|
|
18
|
-
* args: ["user-123"],
|
|
19
|
-
* select: (user) => user.name,
|
|
20
|
-
* })
|
|
21
|
-
*
|
|
22
|
-
* // Wait for the args: no fetch until userId is known
|
|
23
|
-
* const { data } = useReactorQuery({
|
|
24
|
-
* reactor,
|
|
25
|
-
* functionName: "getUser",
|
|
26
|
-
* args: userId ? [userId] : skipToken,
|
|
27
|
-
* })
|
|
28
|
-
*/
|
|
29
|
-
export const useActorQuery = ({ reactor, functionName, args, callConfig, queryKey: defaultQueryKey, ...options }) => {
|
|
30
|
-
useMountQueryClient(reactor.queryClient);
|
|
31
|
-
// Memoize query options to prevent unnecessary re-computations
|
|
32
|
-
// For an update method, the options also carry its default `retry`; see
|
|
33
|
-
// `Reactor.getQueryRetry`.
|
|
34
|
-
const { queryKey, queryFn, retry } = useMemo(() => args === skipToken
|
|
35
|
-
? // Waiting for its args: an entry of its own under the method's key,
|
|
36
|
-
// with nothing to run until then; see skippedQueryKey.
|
|
37
|
-
{
|
|
38
|
-
queryKey: skippedQueryKey(reactor.generateQueryKey({ functionName }, callConfig), "query"),
|
|
39
|
-
// Kept as the unique symbol, which an object literal widens.
|
|
40
|
-
queryFn: skipToken,
|
|
41
|
-
retry: undefined,
|
|
42
|
-
}
|
|
43
|
-
: reactor.getQueryOptions({
|
|
44
|
-
callConfig,
|
|
45
|
-
functionName,
|
|
46
|
-
args,
|
|
47
|
-
queryKey: defaultQueryKey,
|
|
48
|
-
}),
|
|
49
|
-
// `canisterId` is mutable reactor state that `setCanisterId` can change,
|
|
50
|
-
// while `reactor` itself stays the same object — so it has to be a
|
|
51
|
-
// dependency in its own right or the key stays pinned to the old canister.
|
|
52
|
-
[
|
|
53
|
-
reactor,
|
|
54
|
-
reactor.canisterId?.toString(),
|
|
55
|
-
callConfig,
|
|
56
|
-
functionName,
|
|
57
|
-
args,
|
|
58
|
-
defaultQueryKey,
|
|
59
|
-
]);
|
|
60
|
-
return useQuery({
|
|
61
|
-
queryFn,
|
|
62
|
-
...options,
|
|
63
|
-
queryKey,
|
|
64
|
-
...retryOption(options.retry, retry),
|
|
65
|
-
}, reactor.queryClient);
|
|
66
|
-
};
|
|
67
|
-
//# sourceMappingURL=useActorQuery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useActorQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAEL,QAAQ,EACR,SAAS,GAIV,MAAM,uBAAuB,CAAA;AAW9B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AA+C/E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAK3B,EACA,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,QAAQ,EAAE,eAAe,EACzB,GAAG,OAAO,EAMX,EAA6D,EAAE;IAC9D,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAExC,+DAA+D;IAC/D,wEAAwE;IACxE,2BAA2B;IAC3B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAC1C,GAAG,EAAE,CACH,IAAI,KAAK,SAAS;QAChB,CAAC,CAAC,oEAAoE;YACpE,uDAAuD;YACvD;gBACE,QAAQ,EAAE,eAAe,CACvB,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE,UAAU,CAAC,EACtD,OAAO,CACR;gBACD,6DAA6D;gBAC7D,OAAO,EAAE,SAAsB;gBAC/B,KAAK,EAAE,SAAS;aACjB;QACH,CAAC,CAAC,OAAO,CAAC,eAAe,CAAS;YAC9B,UAAU;YACV,YAAY;YACZ,IAAI;YACJ,QAAQ,EAAE,eAAe;SAC1B,CAAC;IACR,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E;QACE,OAAO;QACP,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE;QAC9B,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,eAAe;KAChB,CACF,CAAA;IAED,OAAO,QAAQ,CACb;QACE,OAAO;QACP,GAAG,OAAO;QACV,QAAQ;QACR,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;KACrC,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { QueryKey, UseSuspenseInfiniteQueryResult, UseSuspenseInfiniteQueryOptions, InfiniteData } from "@tanstack/react-query";
|
|
2
|
-
import { FunctionName, Reactor, TransformKey, ReactorArgs, ReactorReturnOk, ReactorQueryData, ReactorReturnErr } from "@ic-reactor/core";
|
|
3
|
-
import { CallConfig } from "@icp-sdk/core/agent";
|
|
4
|
-
/**
|
|
5
|
-
* Parameters for useActorSuspenseInfiniteQuery hook.
|
|
6
|
-
* Extends react-query's UseSuspenseInfiniteQueryOptions with custom reactor params.
|
|
7
|
-
*/
|
|
8
|
-
export interface UseActorSuspenseInfiniteQueryParameters<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown, Selected = InfiniteData<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, TPageParam>> extends Omit<UseSuspenseInfiniteQueryOptions<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, ReactorReturnErr<Service, Method, Transform>, Selected, QueryKey, TPageParam>, "queryKey" | "queryFn" | "getNextPageParam" | "initialPageParam"> {
|
|
9
|
-
/** The reactor instance to use for method calls */
|
|
10
|
-
reactor: Reactor<Service, Transform>;
|
|
11
|
-
/** The method name to call on the canister */
|
|
12
|
-
functionName: Method;
|
|
13
|
-
/** Function to get args from page parameter */
|
|
14
|
-
getArgs: (pageParam: TPageParam) => ReactorArgs<Service, Method, Transform>;
|
|
15
|
-
/**
|
|
16
|
-
* Narrows what the cache key derives from the call arguments.
|
|
17
|
-
*
|
|
18
|
-
* By default the key is scoped by `getArgs(initialPageParam)`, so two
|
|
19
|
-
* infinite queries on the same method with different arguments stay in
|
|
20
|
-
* separate cache entries. Supply this when those args embed the cursor and
|
|
21
|
-
* only part of them identifies the query — return the stable, serializable
|
|
22
|
-
* portion (typically everything except the pagination field). It is required
|
|
23
|
-
* when `initialPageParam` changes between renders, as `Date.now()` does:
|
|
24
|
-
* without it every render keys a new query.
|
|
25
|
-
*/
|
|
26
|
-
getKeyArgs?: (args: ReactorArgs<Service, Method, Transform>) => unknown;
|
|
27
|
-
/** Agent call configuration (effectiveCanisterId, etc.) */
|
|
28
|
-
callConfig?: CallConfig;
|
|
29
|
-
/** Custom query key (auto-generated if not provided) */
|
|
30
|
-
queryKey?: QueryKey;
|
|
31
|
-
/** Initial page parameter */
|
|
32
|
-
initialPageParam: TPageParam;
|
|
33
|
-
/** Function to determine next page parameter */
|
|
34
|
-
getNextPageParam: (lastPage: ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, allPages: ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>[], lastPageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | undefined | null;
|
|
35
|
-
}
|
|
36
|
-
export type UseActorSuspenseInfiniteQueryConfig<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown, Selected = InfiniteData<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, TPageParam>> = Omit<UseActorSuspenseInfiniteQueryParameters<Service, Method, Transform, TPageParam, Selected>, "reactor">;
|
|
37
|
-
export type UseActorSuspenseInfiniteQueryResult<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown, Selected = InfiniteData<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, TPageParam>> = UseSuspenseInfiniteQueryResult<Selected, ReactorReturnErr<Service, Method, Transform>>;
|
|
38
|
-
/**
|
|
39
|
-
* Hook for executing suspense-enabled infinite/paginated query calls on a canister.
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* const { data, fetchNextPage, hasNextPage } = useReactorSuspenseInfiniteQuery({
|
|
43
|
-
* reactor,
|
|
44
|
-
* functionName: "getItems",
|
|
45
|
-
* getArgs: (pageParam) => [{ offset: pageParam, limit: 10 }] as const,
|
|
46
|
-
* initialPageParam: 0,
|
|
47
|
-
* getNextPageParam: (lastPage) => lastPage.nextOffset,
|
|
48
|
-
* })
|
|
49
|
-
*/
|
|
50
|
-
export declare const useActorSuspenseInfiniteQuery: <Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", TPageParam = unknown, Selected = InfiniteData<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, TPageParam>>({ reactor, functionName, getArgs, getKeyArgs, callConfig, queryKey, ...options }: UseActorSuspenseInfiniteQueryParameters<Service, Method, Transform, TPageParam, Selected>) => UseActorSuspenseInfiniteQueryResult<Service, Method, Transform, TPageParam, Selected>;
|
|
51
|
-
//# sourceMappingURL=useActorSuspenseInfiniteQuery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useActorSuspenseInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseInfiniteQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { useMemo, useCallback } from "react";
|
|
2
|
-
import { useSuspenseInfiniteQuery, } from "@tanstack/react-query";
|
|
3
|
-
import { callConfigForKey, mergeFactoryQueryKey, mountWhileSuspended, normalizeQueryData, retryOption, useMountQueryClient, } from "../utils.js";
|
|
4
|
-
/**
|
|
5
|
-
* Hook for executing suspense-enabled infinite/paginated query calls on a canister.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* const { data, fetchNextPage, hasNextPage } = useReactorSuspenseInfiniteQuery({
|
|
9
|
-
* reactor,
|
|
10
|
-
* functionName: "getItems",
|
|
11
|
-
* getArgs: (pageParam) => [{ offset: pageParam, limit: 10 }] as const,
|
|
12
|
-
* initialPageParam: 0,
|
|
13
|
-
* getNextPageParam: (lastPage) => lastPage.nextOffset,
|
|
14
|
-
* })
|
|
15
|
-
*/
|
|
16
|
-
export const useActorSuspenseInfiniteQuery = ({ reactor, functionName, getArgs, getKeyArgs, callConfig, queryKey, ...options }) => {
|
|
17
|
-
useMountQueryClient(reactor.queryClient);
|
|
18
|
-
// Always pass queryKey through generateQueryKey so it is merged with the
|
|
19
|
-
// reactor/function identity. Using the custom key verbatim would cause cache
|
|
20
|
-
// collisions if two different actors or methods share the same key string.
|
|
21
|
-
const baseQueryKey = useMemo(() => {
|
|
22
|
-
// Fold the call arguments into the key. They live in the `getArgs`
|
|
23
|
-
// closure rather than in the config, so without this two hooks on the
|
|
24
|
-
// same method with different arguments share one cache entry and serve
|
|
25
|
-
// each other's pages. `getKeyArgs` narrows them exactly as it does for the
|
|
26
|
-
// factories, which the bound hook's config type always accepted: it used
|
|
27
|
-
// to be ignored here, so the cursor stayed in the key, and an
|
|
28
|
-
// `initialPageParam` that changes every render (`Date.now()`) keyed a new
|
|
29
|
-
// query on every render — an endless loop of first-page fetches.
|
|
30
|
-
const initialArgs = getArgs(options.initialPageParam);
|
|
31
|
-
const keyArgs = getKeyArgs?.(initialArgs) ?? initialArgs;
|
|
32
|
-
return reactor.generateQueryKey({
|
|
33
|
-
functionName,
|
|
34
|
-
queryKey: mergeFactoryQueryKey(queryKey, undefined, keyArgs),
|
|
35
|
-
}, callConfig);
|
|
36
|
-
}, [
|
|
37
|
-
queryKey,
|
|
38
|
-
reactor,
|
|
39
|
-
// `canisterId` is mutable reactor state that `setCanisterId` can change,
|
|
40
|
-
// while `reactor` itself stays the same object — so it has to be a
|
|
41
|
-
// dependency in its own right or the key stays pinned to the old canister
|
|
42
|
-
// while the queryFn already calls the new one.
|
|
43
|
-
reactor.canisterId?.toString(),
|
|
44
|
-
functionName,
|
|
45
|
-
callConfig,
|
|
46
|
-
getArgs,
|
|
47
|
-
getKeyArgs,
|
|
48
|
-
options.initialPageParam,
|
|
49
|
-
]);
|
|
50
|
-
// Memoize queryFn to prevent recreation on every render
|
|
51
|
-
const queryFn = useCallback(async ({ pageParam, queryKey: fetchedKey, }) => {
|
|
52
|
-
const args = getArgs(pageParam);
|
|
53
|
-
const result = await reactor.callMethod({
|
|
54
|
-
functionName,
|
|
55
|
-
args,
|
|
56
|
-
callConfig: callConfigForKey(fetchedKey, callConfig),
|
|
57
|
-
});
|
|
58
|
-
return normalizeQueryData(result);
|
|
59
|
-
}, [reactor, functionName, getArgs, callConfig]);
|
|
60
|
-
// The method's default `retry`: for an update method, only failures that
|
|
61
|
-
// prove the canister never ran the call; see `Reactor.getQueryRetry`.
|
|
62
|
-
const defaultRetry = useMemo(() => reactor.getQueryRetry(functionName, baseQueryKey), [reactor, functionName, baseQueryKey]);
|
|
63
|
-
try {
|
|
64
|
-
return useSuspenseInfiniteQuery({
|
|
65
|
-
queryKey: baseQueryKey,
|
|
66
|
-
queryFn,
|
|
67
|
-
...options,
|
|
68
|
-
...retryOption(options.retry, defaultRetry),
|
|
69
|
-
}, reactor.queryClient);
|
|
70
|
-
}
|
|
71
|
-
catch (thrown) {
|
|
72
|
-
mountWhileSuspended(reactor.queryClient, thrown);
|
|
73
|
-
throw thrown;
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
//# sourceMappingURL=useActorSuspenseInfiniteQuery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useActorSuspenseInfiniteQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseInfiniteQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAEL,wBAAwB,GAIzB,MAAM,uBAAuB,CAAA;AAW9B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,mBAAmB,GACpB,MAAM,aAAa,CAAA;AA4FpB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAS3C,EACA,OAAO,EACP,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,GAAG,OAAO,EAOX,EAMC,EAAE;IACF,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAExC,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,mEAAmE;QACnE,sEAAsE;QACtE,uEAAuE;QACvE,2EAA2E;QAC3E,yEAAyE;QACzE,8DAA8D;QAC9D,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;QACrD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC,WAAW,CAAC,IAAI,WAAW,CAAA;QAExD,OAAO,OAAO,CAAC,gBAAgB,CAC7B;YACE,YAAY;YACZ,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;SAC7D,EACD,UAAU,CACX,CAAA;IACH,CAAC,EAAE;QACD,QAAQ;QACR,OAAO;QACP,yEAAyE;QACzE,mEAAmE;QACnE,0EAA0E;QAC1E,+CAA+C;QAC/C,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE;QAC9B,YAAY;QACZ,UAAU;QACV,OAAO;QACP,UAAU;QACV,OAAO,CAAC,gBAAgB;KACzB,CAAC,CAAA;IAEF,wDAAwD;IACxD,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,EAAE,EACL,SAAS,EACT,QAAQ,EAAE,UAAU,GAIrB,EAAE,EAAE;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACtC,YAAY;YACZ,IAAI;YACJ,UAAU,EAAE,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC;SACrD,CAAC,CAAA;QACF,OAAO,kBAAkB,CACvB,MAAqD,CACtD,CAAA;IACH,CAAC,EACD,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAC7C,CAAA;IAED,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,EACvD,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CACtC,CAAA;IAED,IAAI,CAAC;QACH,OAAO,wBAAwB,CAC7B;YACE,QAAQ,EAAE,YAAY;YACtB,OAAO;YACP,GAAG,OAAO;YACV,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC;SACrC,EACR,OAAO,CAAC,WAAW,CAOpB,CAAA;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,MAAM,CAAA;IACd,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { QueryKey, QueryObserverOptions, UseSuspenseQueryResult } from "@tanstack/react-query";
|
|
2
|
-
import { FunctionName, Reactor, TransformKey, ReactorArgs, ReactorReturnOk, ReactorQueryData, ReactorReturnErr } from "@ic-reactor/core";
|
|
3
|
-
import { CallConfig } from "@icp-sdk/core/agent";
|
|
4
|
-
export interface UseActorSuspenseQueryParameters<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>> extends Omit<QueryObserverOptions<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, ReactorReturnErr<Service, Method, Transform>, Selected, ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, QueryKey>, "queryKey" | "queryFn"> {
|
|
5
|
-
reactor: Reactor<Service, Transform>;
|
|
6
|
-
functionName: Method;
|
|
7
|
-
args?: ReactorArgs<Service, Method, Transform>;
|
|
8
|
-
callConfig?: CallConfig;
|
|
9
|
-
queryKey?: QueryKey;
|
|
10
|
-
}
|
|
11
|
-
export type UseActorSuspenseQueryConfig<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>> = Omit<UseActorSuspenseQueryParameters<Service, Method, Transform, Selected>, "reactor">;
|
|
12
|
-
export type UseActorSuspenseQueryResult<Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>> = UseSuspenseQueryResult<Selected, ReactorReturnErr<Service, Method, Transform>>;
|
|
13
|
-
/**
|
|
14
|
-
* Hook for executing suspense-enabled query calls on a canister.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* const { data } = useReactorSuspenseQuery({
|
|
18
|
-
* reactor,
|
|
19
|
-
* functionName: "getUser",
|
|
20
|
-
* args: ["user-123"],
|
|
21
|
-
* })
|
|
22
|
-
*
|
|
23
|
-
* // With select transformation
|
|
24
|
-
* const { data } = useReactorSuspenseQuery({
|
|
25
|
-
* reactor,
|
|
26
|
-
* functionName: "getUser",
|
|
27
|
-
* args: ["user-123"],
|
|
28
|
-
* select: (user) => user.name,
|
|
29
|
-
* })
|
|
30
|
-
*/
|
|
31
|
-
export declare const useActorSuspenseQuery: <Service, Method extends FunctionName<Service>, Transform extends TransformKey = "candid", Selected = ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>>({ reactor, functionName, args, callConfig, queryKey: defaultQueryKey, ...options }: UseActorSuspenseQueryParameters<Service, Method, Transform, Selected>) => UseActorSuspenseQueryResult<Service, Method, Transform, Selected>;
|
|
32
|
-
//# sourceMappingURL=useActorSuspenseQuery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useActorSuspenseQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseQuery.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAER,oBAAoB,EACpB,sBAAsB,EAEvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAOhD,MAAM,WAAW,+BAA+B,CAC9C,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CACxE,SAAQ,IAAI,CACZ,oBAAoB,CAClB,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAC5C,QAAQ,EACR,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EAC7D,QAAQ,CACT,EACD,UAAU,GAAG,SAAS,CACvB;IACC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,MAAM,2BAA2B,CACrC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,IAAI,CACN,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EACrE,SAAS,CACV,CAAA;AAED,MAAM,MAAM,2BAA2B,CACrC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IACtE,sBAAsB,CACxB,QAAQ,EACR,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAC7C,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,EACP,MAAM,SAAS,YAAY,CAAC,OAAO,CAAC,EACpC,SAAS,SAAS,YAAY,GAAG,QAAQ,EACzC,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,EACxE,oFAOC,+BAA+B,CAChC,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,CACT,KAAG,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CA6CnE,CAAA"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
2
|
-
import { useSuspenseQuery, } from "@tanstack/react-query";
|
|
3
|
-
import { mountWhileSuspended, retryOption, useMountQueryClient, } from "../utils.js";
|
|
4
|
-
/**
|
|
5
|
-
* Hook for executing suspense-enabled query calls on a canister.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* const { data } = useReactorSuspenseQuery({
|
|
9
|
-
* reactor,
|
|
10
|
-
* functionName: "getUser",
|
|
11
|
-
* args: ["user-123"],
|
|
12
|
-
* })
|
|
13
|
-
*
|
|
14
|
-
* // With select transformation
|
|
15
|
-
* const { data } = useReactorSuspenseQuery({
|
|
16
|
-
* reactor,
|
|
17
|
-
* functionName: "getUser",
|
|
18
|
-
* args: ["user-123"],
|
|
19
|
-
* select: (user) => user.name,
|
|
20
|
-
* })
|
|
21
|
-
*/
|
|
22
|
-
export const useActorSuspenseQuery = ({ reactor, functionName, args, callConfig, queryKey: defaultQueryKey, ...options }) => {
|
|
23
|
-
useMountQueryClient(reactor.queryClient);
|
|
24
|
-
// Memoize query options to prevent unnecessary re-computations
|
|
25
|
-
// For an update method, the options also carry its default `retry`; see
|
|
26
|
-
// `Reactor.getQueryRetry`.
|
|
27
|
-
const { queryKey, queryFn, retry } = useMemo(() => reactor.getQueryOptions({
|
|
28
|
-
callConfig,
|
|
29
|
-
functionName,
|
|
30
|
-
args,
|
|
31
|
-
queryKey: defaultQueryKey,
|
|
32
|
-
}),
|
|
33
|
-
// `canisterId` is mutable reactor state that `setCanisterId` can change,
|
|
34
|
-
// while `reactor` itself stays the same object — so it has to be a
|
|
35
|
-
// dependency in its own right or the key stays pinned to the old canister.
|
|
36
|
-
[
|
|
37
|
-
reactor,
|
|
38
|
-
reactor.canisterId?.toString(),
|
|
39
|
-
callConfig,
|
|
40
|
-
functionName,
|
|
41
|
-
args,
|
|
42
|
-
defaultQueryKey,
|
|
43
|
-
]);
|
|
44
|
-
try {
|
|
45
|
-
return useSuspenseQuery({
|
|
46
|
-
// Suspense queries don't support skipToken, so cast the queryFn
|
|
47
|
-
queryFn: queryFn,
|
|
48
|
-
...options,
|
|
49
|
-
queryKey,
|
|
50
|
-
...retryOption(options.retry, retry),
|
|
51
|
-
}, reactor.queryClient);
|
|
52
|
-
}
|
|
53
|
-
catch (thrown) {
|
|
54
|
-
mountWhileSuspended(reactor.queryClient, thrown);
|
|
55
|
-
throw thrown;
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=useActorSuspenseQuery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useActorSuspenseQuery.js","sourceRoot":"","sources":["../../src/hooks/useActorSuspenseQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAEL,gBAAgB,GAIjB,MAAM,uBAAuB,CAAA;AAW9B,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,mBAAmB,GACpB,MAAM,aAAa,CAAA;AA4CpB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAKnC,EACA,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,QAAQ,EAAE,eAAe,EACzB,GAAG,OAAO,EAMX,EAAqE,EAAE;IACtE,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAExC,+DAA+D;IAC/D,wEAAwE;IACxE,2BAA2B;IAC3B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAC1C,GAAG,EAAE,CACH,OAAO,CAAC,eAAe,CAAS;QAC9B,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,QAAQ,EAAE,eAAe;KAC1B,CAAC;IACJ,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E;QACE,OAAO;QACP,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE;QAC9B,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,eAAe;KAChB,CACF,CAAA;IAED,IAAI,CAAC;QACH,OAAO,gBAAgB,CACrB;YACE,gEAAgE;YAChE,OAAO,EAAE,OAGR;YACD,GAAG,OAAO;YACV,QAAQ;YACR,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrC,EACD,OAAO,CAAC,WAAW,CACpB,CAAA;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,MAAM,CAAA;IACd,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Which `AuthenticationManager`s a `createReactorProvider` value owns, for the
|
|
3
|
-
* provider to dispose when its tree unmounts. Not part of the public API.
|
|
4
|
-
*
|
|
5
|
-
* A value owns the managers built for it: those constructed while its factory
|
|
6
|
-
* ran, and those a `defineReactor` or `defineDisplayReactor` result in it
|
|
7
|
-
* builds later, on first use. A manager built elsewhere and handed in, such as
|
|
8
|
-
* an app-wide one every provider shares, belongs to whoever built it, and
|
|
9
|
-
* disposing it on each remount would stop its client following the session.
|
|
10
|
-
*
|
|
11
|
-
* A result's `authentication` is a getter that builds the manager on first
|
|
12
|
-
* read, and building one loads the optional `@icp-sdk/auth` peer in a browser.
|
|
13
|
-
* A provider that read it to release the manager would build one only to
|
|
14
|
-
* dispose it, for every reactor whose tree never signed in. Each result
|
|
15
|
-
* registers a reader here instead, which answers without building anything.
|
|
16
|
-
*
|
|
17
|
-
* Kept apart from `defineReactorShared.ts` so that the provider does not pull
|
|
18
|
-
* that module's reactor setup into an app that builds its reactors by hand.
|
|
19
|
-
*/
|
|
20
|
-
import type { AuthenticationManager } from "./auth/authentication-manager.js";
|
|
21
|
-
/**
|
|
22
|
-
* Records how to read the manager `owner` built, once it has built one.
|
|
23
|
-
*
|
|
24
|
-
* @internal
|
|
25
|
-
*/
|
|
26
|
-
export declare function registerAuthentication(owner: object, read: () => AuthenticationManager | undefined): void;
|
|
27
|
-
/**
|
|
28
|
-
* The manager a registered result built, or `undefined` for one that has not
|
|
29
|
-
* built one yet, for one that was handed a manager, and for anything that was
|
|
30
|
-
* never registered.
|
|
31
|
-
*
|
|
32
|
-
* @internal
|
|
33
|
-
*/
|
|
34
|
-
export declare function authenticationOf(owner: object): AuthenticationManager | undefined;
|
|
35
|
-
/**
|
|
36
|
-
* Called by each `AuthenticationManager` as it is constructed.
|
|
37
|
-
*
|
|
38
|
-
* @internal
|
|
39
|
-
*/
|
|
40
|
-
export declare function recordAuthentication(manager: AuthenticationManager): void;
|
|
41
|
-
/**
|
|
42
|
-
* Runs `build` and returns what it returned, with every manager constructed
|
|
43
|
-
* while it ran. `build` runs synchronously, so a server rendering several
|
|
44
|
-
* requests at once cannot interleave another request's managers.
|
|
45
|
-
*
|
|
46
|
-
* @internal
|
|
47
|
-
*/
|
|
48
|
-
export declare function collectAuthentication<T>(build: () => T): {
|
|
49
|
-
value: T;
|
|
50
|
-
built: AuthenticationManager[];
|
|
51
|
-
};
|
|
52
|
-
//# sourceMappingURL=ownedAuthentication.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ownedAuthentication.d.ts","sourceRoot":"","sources":["../src/ownedAuthentication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAO7E;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,qBAAqB,GAAG,SAAS,GAC5C,IAAI,CAEN;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,GACZ,qBAAqB,GAAG,SAAS,CAEnC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAEzE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG;IACxD,KAAK,EAAE,CAAC,CAAA;IACR,KAAK,EAAE,qBAAqB,EAAE,CAAA;CAC/B,CAUA"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
const readers = new WeakMap();
|
|
2
|
-
/** The managers constructed during a running {@link collectAuthentication}. */
|
|
3
|
-
let collecting;
|
|
4
|
-
/**
|
|
5
|
-
* Records how to read the manager `owner` built, once it has built one.
|
|
6
|
-
*
|
|
7
|
-
* @internal
|
|
8
|
-
*/
|
|
9
|
-
export function registerAuthentication(owner, read) {
|
|
10
|
-
readers.set(owner, read);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* The manager a registered result built, or `undefined` for one that has not
|
|
14
|
-
* built one yet, for one that was handed a manager, and for anything that was
|
|
15
|
-
* never registered.
|
|
16
|
-
*
|
|
17
|
-
* @internal
|
|
18
|
-
*/
|
|
19
|
-
export function authenticationOf(owner) {
|
|
20
|
-
return readers.get(owner)?.();
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Called by each `AuthenticationManager` as it is constructed.
|
|
24
|
-
*
|
|
25
|
-
* @internal
|
|
26
|
-
*/
|
|
27
|
-
export function recordAuthentication(manager) {
|
|
28
|
-
collecting?.add(manager);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Runs `build` and returns what it returned, with every manager constructed
|
|
32
|
-
* while it ran. `build` runs synchronously, so a server rendering several
|
|
33
|
-
* requests at once cannot interleave another request's managers.
|
|
34
|
-
*
|
|
35
|
-
* @internal
|
|
36
|
-
*/
|
|
37
|
-
export function collectAuthentication(build) {
|
|
38
|
-
const outer = collecting;
|
|
39
|
-
const built = new Set();
|
|
40
|
-
collecting = built;
|
|
41
|
-
try {
|
|
42
|
-
const value = build();
|
|
43
|
-
return { value, built: [...built] };
|
|
44
|
-
}
|
|
45
|
-
finally {
|
|
46
|
-
collecting = outer;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=ownedAuthentication.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ownedAuthentication.js","sourceRoot":"","sources":["../src/ownedAuthentication.ts"],"names":[],"mappings":"AAqBA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAmD,CAAA;AAE9E,+EAA+E;AAC/E,IAAI,UAAkD,CAAA;AAEtD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,IAA6C;IAE7C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAa;IAEb,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAI,KAAc;IAIrD,MAAM,KAAK,GAAG,UAAU,CAAA;IACxB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAA;IAC9C,UAAU,GAAG,KAAK,CAAA;IAClB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,EAAE,CAAA;QACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAA;IACrC,CAAC;YAAS,CAAC;QACT,UAAU,GAAG,KAAK,CAAA;IACpB,CAAC;AACH,CAAC"}
|
package/dist/server.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `react-server` entry of `@ic-reactor/react`.
|
|
3
|
-
*
|
|
4
|
-
* React Server Components are bundled with the `react-server` export
|
|
5
|
-
* condition, and `package.json` routes that condition here instead of to
|
|
6
|
-
* `index.ts`. The main entry also loads every hook, and a bundler rejects a
|
|
7
|
-
* hook import anywhere in the server graph, so a server component that
|
|
8
|
-
* imported only `Reactor` from it failed to build.
|
|
9
|
-
*
|
|
10
|
-
* This entry carries the core runtime (`Reactor`, `DisplayReactor`,
|
|
11
|
-
* `ClientManager`, the error classes and utilities) and the framework-free
|
|
12
|
-
* validation helpers, and nothing that imports React. A hook or a hook factory
|
|
13
|
-
* imported in a server component is therefore a missing export at build time,
|
|
14
|
-
* which is the error to get: those only run in a `"use client"` module.
|
|
15
|
-
*
|
|
16
|
-
* TypeScript does not read the `react-server` condition, so types still come
|
|
17
|
-
* from the main entry.
|
|
18
|
-
*/
|
|
19
|
-
export * from "@ic-reactor/core";
|
|
20
|
-
export * from "./validation.js";
|
|
21
|
-
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,cAAc,kBAAkB,CAAA;AAIhC,cAAc,iBAAiB,CAAA"}
|
package/dist/server.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `react-server` entry of `@ic-reactor/react`.
|
|
3
|
-
*
|
|
4
|
-
* React Server Components are bundled with the `react-server` export
|
|
5
|
-
* condition, and `package.json` routes that condition here instead of to
|
|
6
|
-
* `index.ts`. The main entry also loads every hook, and a bundler rejects a
|
|
7
|
-
* hook import anywhere in the server graph, so a server component that
|
|
8
|
-
* imported only `Reactor` from it failed to build.
|
|
9
|
-
*
|
|
10
|
-
* This entry carries the core runtime (`Reactor`, `DisplayReactor`,
|
|
11
|
-
* `ClientManager`, the error classes and utilities) and the framework-free
|
|
12
|
-
* validation helpers, and nothing that imports React. A hook or a hook factory
|
|
13
|
-
* imported in a server component is therefore a missing export at build time,
|
|
14
|
-
* which is the error to get: those only run in a `"use client"` module.
|
|
15
|
-
*
|
|
16
|
-
* TypeScript does not read the `react-server` condition, so types still come
|
|
17
|
-
* from the main entry.
|
|
18
|
-
*/
|
|
19
|
-
export * from "@ic-reactor/core";
|
|
20
|
-
// Plain functions over `ValidationError`, useful in a server action that maps
|
|
21
|
-
// a rejected call onto form field errors.
|
|
22
|
-
export * from "./validation.js";
|
|
23
|
-
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,cAAc,kBAAkB,CAAA;AAEhC,8EAA8E;AAC9E,0CAA0C;AAC1C,cAAc,iBAAiB,CAAA"}
|
package/dist/testing.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `@ic-reactor/react/testing`: the testing utilities of
|
|
3
|
-
* `@ic-reactor/core/testing`, re-exported for an app that depends on
|
|
4
|
-
* `@ic-reactor/react` alone. The main entry re-exports `@ic-reactor/core` the
|
|
5
|
-
* same way, but a package manager that installs strictly does not let such an
|
|
6
|
-
* app import `@ic-reactor/core/testing` itself.
|
|
7
|
-
*
|
|
8
|
-
* Nothing here imports React, and neither the main entry nor the
|
|
9
|
-
* `react-server` entry imports this one, so none of it reaches an app bundle.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* import { createTestCanister, installFakeReplica } from "@ic-reactor/react/testing"
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* @packageDocumentation
|
|
17
|
-
*/
|
|
18
|
-
export * from "@ic-reactor/core/testing";
|
|
19
|
-
//# sourceMappingURL=testing.d.ts.map
|
package/dist/testing.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,cAAc,0BAA0B,CAAA"}
|