@ensforge/react 0.1.0 → 0.1.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 +10 -10
- package/dist/atoms/batch.d.ts +6 -6
- package/dist/atoms/batch.d.ts.map +1 -1
- package/dist/atoms/capabilities.d.ts +20 -20
- package/dist/atoms/capabilities.d.ts.map +1 -1
- package/dist/atoms/dns.d.ts +7 -7
- package/dist/atoms/dns.d.ts.map +1 -1
- package/dist/atoms/events.d.ts +35 -35
- package/dist/atoms/events.d.ts.map +1 -1
- package/dist/atoms/generic.d.ts +5 -4
- package/dist/atoms/generic.d.ts.map +1 -1
- package/dist/atoms/generic.js.map +1 -1
- package/dist/atoms/migration.d.ts +5 -5
- package/dist/atoms/migration.d.ts.map +1 -1
- package/dist/atoms/name.d.ts +24 -24
- package/dist/atoms/name.d.ts.map +1 -1
- package/dist/atoms/ownership.d.ts +2 -2
- package/dist/atoms/ownership.d.ts.map +1 -1
- package/dist/atoms/query.d.ts +6 -11
- package/dist/atoms/query.d.ts.map +1 -1
- package/dist/atoms/query.js +14 -11
- package/dist/atoms/query.js.map +1 -1
- package/dist/atoms/records.d.ts +12 -12
- package/dist/atoms/records.d.ts.map +1 -1
- package/dist/atoms/registration.d.ts +8 -8
- package/dist/atoms/registration.d.ts.map +1 -1
- package/dist/atoms/resolution.d.ts +8 -8
- package/dist/atoms/resolution.d.ts.map +1 -1
- package/dist/atoms/reverse.d.ts +2 -2
- package/dist/atoms/reverse.d.ts.map +1 -1
- package/dist/atoms/stream.d.ts +2 -2
- package/dist/atoms/stream.d.ts.map +1 -1
- package/dist/atoms/stream.js +6 -4
- package/dist/atoms/stream.js.map +1 -1
- package/dist/atoms/wrapping.d.ts +3 -3
- package/dist/atoms/wrapping.d.ts.map +1 -1
- package/dist/atoms.d.ts +3 -2
- package/dist/atoms.js +3 -2
- package/dist/cache/invalidation.d.ts +5 -5
- package/dist/cache/invalidation.d.ts.map +1 -1
- package/dist/cache/invalidation.js +3 -3
- package/dist/cache/invalidation.js.map +1 -1
- package/dist/cache/prefetch.d.ts +5 -4
- package/dist/cache/prefetch.d.ts.map +1 -1
- package/dist/cache/prefetch.js +3 -3
- package/dist/cache/prefetch.js.map +1 -1
- package/dist/cache/registry.d.ts +3 -3
- package/dist/cache/registry.d.ts.map +1 -1
- package/dist/cache/registry.js +2 -2
- package/dist/cache/registry.js.map +1 -1
- package/dist/cache.d.ts +4 -4
- package/dist/cache.js +4 -4
- package/dist/hooks/batch.d.ts +13 -13
- package/dist/hooks/batch.d.ts.map +1 -1
- package/dist/hooks/capabilities.d.ts +107 -107
- package/dist/hooks/capabilities.d.ts.map +1 -1
- package/dist/hooks/dns.d.ts +39 -39
- package/dist/hooks/dns.d.ts.map +1 -1
- package/dist/hooks/events.d.ts +118 -118
- package/dist/hooks/events.d.ts.map +1 -1
- package/dist/hooks/generic.d.ts +5 -5
- package/dist/hooks/generic.d.ts.map +1 -1
- package/dist/hooks/generic.js.map +1 -1
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/migration.d.ts +27 -27
- package/dist/hooks/migration.d.ts.map +1 -1
- package/dist/hooks/name.d.ts +77 -77
- package/dist/hooks/name.d.ts.map +1 -1
- package/dist/hooks/ownership.d.ts +5 -5
- package/dist/hooks/ownership.d.ts.map +1 -1
- package/dist/hooks/records.d.ts +69 -69
- package/dist/hooks/records.d.ts.map +1 -1
- package/dist/hooks/registration.d.ts +45 -45
- package/dist/hooks/registration.d.ts.map +1 -1
- package/dist/hooks/resolution.d.ts +33 -33
- package/dist/hooks/resolution.d.ts.map +1 -1
- package/dist/hooks/reverse.d.ts +9 -9
- package/dist/hooks/reverse.d.ts.map +1 -1
- package/dist/hooks/use-cache.d.ts +6 -6
- package/dist/hooks/use-cache.d.ts.map +1 -1
- package/dist/hooks/use-cache.js +4 -4
- package/dist/hooks/use-cache.js.map +1 -1
- package/dist/hooks/use-mutation.js +16 -31
- package/dist/hooks/use-mutation.js.map +1 -1
- package/dist/hooks/use-query.d.ts +6 -6
- package/dist/hooks/use-query.d.ts.map +1 -1
- package/dist/hooks/use-query.js +24 -52
- package/dist/hooks/use-query.js.map +1 -1
- package/dist/hooks/use-suspense-query.d.ts +9 -8
- package/dist/hooks/use-suspense-query.d.ts.map +1 -1
- package/dist/hooks/use-suspense-query.js +5 -5
- package/dist/hooks/use-suspense-query.js.map +1 -1
- package/dist/hooks/wrapping.d.ts +7 -7
- package/dist/hooks/wrapping.d.ts.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +7 -7
- package/dist/mutation/options.d.ts +9 -7
- package/dist/mutation/options.d.ts.map +1 -1
- package/dist/mutation/result.d.ts +8 -10
- package/dist/mutation/result.d.ts.map +1 -1
- package/dist/provider/context.d.ts +4 -2
- package/dist/provider/context.d.ts.map +1 -1
- package/dist/provider/context.js.map +1 -1
- package/dist/query/options.d.ts +27 -24
- package/dist/query/options.d.ts.map +1 -1
- package/dist/query/options.js +26 -12
- package/dist/query/options.js.map +1 -1
- package/dist/query/result.d.ts +7 -13
- package/dist/query/result.d.ts.map +1 -1
- package/dist/query/result.js.map +1 -1
- package/package.json +2 -2
|
@@ -9,58 +9,44 @@ import { useContext, useRef, useState } from "react";
|
|
|
9
9
|
|
|
10
10
|
//#region src/hooks/use-mutation.ts
|
|
11
11
|
const makeMutationHook = (factory) => (options = {}) => {
|
|
12
|
-
const { sdk } = useEnsforgeContext();
|
|
12
|
+
const { defaults, sdk } = useEnsforgeContext();
|
|
13
13
|
const registry = useContext(RegistryContext);
|
|
14
14
|
const atomRef = useRef(void 0);
|
|
15
15
|
const [parameters, setParameters] = useState(void 0);
|
|
16
16
|
if (atomRef.current === void 0) atomRef.current = factory(sdk);
|
|
17
17
|
const atom = atomRef.current;
|
|
18
18
|
const result = useAtomValue(atom);
|
|
19
|
+
const retry = options.retry ?? defaults.mutations?.retry ?? false;
|
|
19
20
|
const mutateEffect = (nextParameters) => {
|
|
20
21
|
const effect = Effect.sync(() => {
|
|
21
22
|
setParameters(nextParameters);
|
|
22
23
|
registry.set(atom, nextParameters);
|
|
23
24
|
}).pipe(Effect.andThen(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true })));
|
|
24
|
-
return
|
|
25
|
+
return retry === false ? effect : effect.pipe(Effect.retry(retry));
|
|
25
26
|
};
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
local?.onSuccess?.(exit.value, nextParameters);
|
|
30
|
-
options.onSettled?.(exit.value, null, nextParameters);
|
|
31
|
-
local?.onSettled?.(exit.value, null, nextParameters);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const error = errorFromCause(exit.cause);
|
|
35
|
-
options.onError?.(error, nextParameters);
|
|
36
|
-
local?.onError?.(error, nextParameters);
|
|
37
|
-
options.onSettled?.(void 0, error, nextParameters);
|
|
38
|
-
local?.onSettled?.(void 0, error, nextParameters);
|
|
39
|
-
};
|
|
40
|
-
const mutate = (nextParameters, callbacks) => {
|
|
41
|
-
Effect.runPromiseExit(mutateEffect(nextParameters)).then((exit) => runCallbacks(exit, nextParameters, callbacks));
|
|
27
|
+
const notifyExit = (exit, nextParameters, local) => {
|
|
28
|
+
options.onExit?.(exit, nextParameters);
|
|
29
|
+
local?.onExit?.(exit, nextParameters);
|
|
42
30
|
};
|
|
43
31
|
const mutateAsync = async (nextParameters) => {
|
|
44
32
|
const exit = await Effect.runPromiseExit(mutateEffect(nextParameters));
|
|
45
|
-
|
|
33
|
+
notifyExit(exit, nextParameters, void 0);
|
|
46
34
|
if (Exit.isSuccess(exit)) return exit.value;
|
|
47
35
|
throw Cause.squash(exit.cause);
|
|
48
36
|
};
|
|
37
|
+
const mutate = (nextParameters, local) => {
|
|
38
|
+
Effect.runPromiseExit(mutateEffect(nextParameters)).then((exit) => notifyExit(exit, nextParameters, local));
|
|
39
|
+
};
|
|
49
40
|
const cause = Option.getOrNull(AsyncResult.cause(result));
|
|
50
|
-
const data = Option.getOrUndefined(AsyncResult.value(result));
|
|
51
|
-
const isIdle = AsyncResult.isInitial(result) && !result.waiting;
|
|
52
|
-
const isPending = result.waiting;
|
|
53
|
-
const isError = AsyncResult.isFailure(result);
|
|
54
|
-
const isSuccess = AsyncResult.isSuccess(result) && !result.waiting;
|
|
55
41
|
return {
|
|
56
42
|
cause,
|
|
57
|
-
data,
|
|
43
|
+
data: Option.getOrUndefined(AsyncResult.value(result)),
|
|
58
44
|
error: cause === null ? null : errorFromCause(cause),
|
|
59
45
|
interrupt: () => registry.set(atom, Atom.Interrupt),
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
46
|
+
isFailure: AsyncResult.isFailure(result),
|
|
47
|
+
isInitial: AsyncResult.isInitial(result) && !result.waiting,
|
|
48
|
+
isSuccess: AsyncResult.isSuccess(result) && !result.waiting,
|
|
49
|
+
isWaiting: result.waiting,
|
|
64
50
|
mutate,
|
|
65
51
|
mutateAsync,
|
|
66
52
|
mutateEffect,
|
|
@@ -69,8 +55,7 @@ const makeMutationHook = (factory) => (options = {}) => {
|
|
|
69
55
|
setParameters(void 0);
|
|
70
56
|
registry.set(atom, Atom.Reset);
|
|
71
57
|
},
|
|
72
|
-
result
|
|
73
|
-
status: isPending ? "pending" : isError ? "error" : isSuccess ? "success" : "idle"
|
|
58
|
+
result
|
|
74
59
|
};
|
|
75
60
|
};
|
|
76
61
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mutation.js","names":[],"sources":["../../src/hooks/use-mutation.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext, useRef, useState } from \"react\";\n\nimport { RegistryContext, useAtomValue } from \"@effect/atom-react\";\nimport { Cause, Effect, Exit, Option } from \"effect\";\nimport { AsyncResult, Atom, AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport type { EnsMutationAtomFactory } from \"../atoms/mutation.js\";\nimport type {
|
|
1
|
+
{"version":3,"file":"use-mutation.js","names":[],"sources":["../../src/hooks/use-mutation.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext, useRef, useState } from \"react\";\n\nimport { RegistryContext, useAtomValue } from \"@effect/atom-react\";\nimport { Cause, Effect, Exit, Option, type Schedule } from \"effect\";\nimport { AsyncResult, Atom, AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport type { EnsMutationAtomFactory } from \"../atoms/mutation.js\";\nimport type { EnsMutationExecutionOptions, EnsMutationOptions } from \"../mutation/options.js\";\nimport type { EnsMutationResult } from \"../mutation/result.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport { errorFromCause } from \"../query/result.js\";\n\nexport const makeMutationHook =\n <Parameters, Success, Failure>(factory: EnsMutationAtomFactory<Parameters, Success, Failure>) =>\n (\n options: EnsMutationOptions<Parameters, Success, Failure> = {},\n ): EnsMutationResult<Parameters, Success, Failure> => {\n const { defaults, sdk } = useEnsforgeContext();\n const registry = useContext(RegistryContext);\n const atomRef = useRef<ReturnType<typeof factory> | undefined>(undefined);\n const [parameters, setParameters] = useState<Parameters | undefined>(undefined);\n if (atomRef.current === undefined) atomRef.current = factory(sdk);\n const atom = atomRef.current;\n const result = useAtomValue(atom);\n const retry =\n options.retry ??\n (defaults.mutations?.retry as false | Schedule.Schedule<unknown, Failure> | undefined) ??\n false;\n\n const mutateEffect = (nextParameters: Parameters): Effect.Effect<Success, Failure> => {\n const effect = Effect.sync(() => {\n setParameters(nextParameters);\n registry.set(atom, nextParameters);\n }).pipe(\n Effect.andThen(\n AtomRegistry.getResult(registry, atom, {\n suspendOnWaiting: true,\n }),\n ),\n );\n return retry === false ? effect : effect.pipe(Effect.retry(retry));\n };\n\n const notifyExit = (\n exit: Exit.Exit<Success, Failure>,\n nextParameters: Parameters,\n local: EnsMutationExecutionOptions<Parameters, Success, Failure> | undefined,\n ) => {\n options.onExit?.(exit, nextParameters);\n local?.onExit?.(exit, nextParameters);\n };\n\n const mutateAsync = async (nextParameters: Parameters): Promise<Success> => {\n const exit = await Effect.runPromiseExit(mutateEffect(nextParameters));\n notifyExit(exit, nextParameters, undefined);\n if (Exit.isSuccess(exit)) return exit.value;\n throw Cause.squash(exit.cause);\n };\n\n const mutate = (\n nextParameters: Parameters,\n local?: EnsMutationExecutionOptions<Parameters, Success, Failure>,\n ) => {\n void Effect.runPromiseExit(mutateEffect(nextParameters)).then((exit) =>\n notifyExit(exit, nextParameters, local),\n );\n };\n\n const cause = Option.getOrNull(AsyncResult.cause(result));\n\n return {\n cause,\n data: Option.getOrUndefined(AsyncResult.value(result)),\n error: cause === null ? null : errorFromCause(cause),\n interrupt: () => registry.set(atom, Atom.Interrupt),\n isFailure: AsyncResult.isFailure(result),\n isInitial: AsyncResult.isInitial(result) && !result.waiting,\n isSuccess: AsyncResult.isSuccess(result) && !result.waiting,\n isWaiting: result.waiting,\n mutate,\n mutateAsync,\n mutateEffect,\n parameters,\n reset: () => {\n setParameters(undefined);\n registry.set(atom, Atom.Reset);\n },\n result,\n };\n };\n"],"mappings":";;;;;;;;;;AAcA,MAAa,oBACoB,aAE7B,UAA4D,CAAC,MACT;CACpD,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,UAAU,OAA+C,MAAS;CACxE,MAAM,CAAC,YAAY,iBAAiB,SAAiC,MAAS;CAC9E,IAAI,QAAQ,YAAY,QAAW,QAAQ,UAAU,QAAQ,GAAG;CAChE,MAAM,OAAO,QAAQ;CACrB,MAAM,SAAS,aAAa,IAAI;CAChC,MAAM,QACJ,QAAQ,SACP,SAAS,WAAW,SACrB;CAEF,MAAM,gBAAgB,mBAAgE;EACpF,MAAM,SAAS,OAAO,WAAW;GAC/B,cAAc,cAAc;GAC5B,SAAS,IAAI,MAAM,cAAc;EACnC,CAAC,CAAC,CAAC,KACD,OAAO,QACL,aAAa,UAAU,UAAU,MAAM,EACrC,kBAAkB,KACpB,CAAC,CACH,CACF;EACA,OAAO,UAAU,QAAQ,SAAS,OAAO,KAAK,OAAO,MAAM,KAAK,CAAC;CACnE;CAEA,MAAM,cACJ,MACA,gBACA,UACG;EACH,QAAQ,SAAS,MAAM,cAAc;EACrC,OAAO,SAAS,MAAM,cAAc;CACtC;CAEA,MAAM,cAAc,OAAO,mBAAiD;EAC1E,MAAM,OAAO,MAAM,OAAO,eAAe,aAAa,cAAc,CAAC;EACrE,WAAW,MAAM,gBAAgB,MAAS;EAC1C,IAAI,KAAK,UAAU,IAAI,GAAG,OAAO,KAAK;EACtC,MAAM,MAAM,OAAO,KAAK,KAAK;CAC/B;CAEA,MAAM,UACJ,gBACA,UACG;EACH,AAAK,OAAO,eAAe,aAAa,cAAc,CAAC,CAAC,CAAC,MAAM,SAC7D,WAAW,MAAM,gBAAgB,KAAK,CACxC;CACF;CAEA,MAAM,QAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC;CAExD,OAAO;EACL;EACA,MAAM,OAAO,eAAe,YAAY,MAAM,MAAM,CAAC;EACrD,OAAO,UAAU,OAAO,OAAO,eAAe,KAAK;EACnD,iBAAiB,SAAS,IAAI,MAAM,KAAK,SAAS;EAClD,WAAW,YAAY,UAAU,MAAM;EACvC,WAAW,YAAY,UAAU,MAAM,KAAK,CAAC,OAAO;EACpD,WAAW,YAAY,UAAU,MAAM,KAAK,CAAC,OAAO;EACpD,WAAW,OAAO;EAClB;EACA;EACA;EACA;EACA,aAAa;GACX,cAAc,MAAS;GACvB,SAAS,IAAI,MAAM,KAAK,KAAK;EAC/B;EACA;CACF;AACF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { UseEnsAtomParameters } from "../query/options.js";
|
|
2
|
+
import { EnsAtomFactory } from "../atoms/query.js";
|
|
3
|
+
import { EnsAtomResult } from "../query/result.js";
|
|
4
4
|
import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
|
|
5
5
|
//#region src/hooks/use-query.d.ts
|
|
6
|
-
declare const makeQueryHook: <Parameters extends object, Success, Failure>(factory:
|
|
7
|
-
declare const
|
|
6
|
+
declare const makeQueryHook: <Parameters extends object, Success, Failure>(factory: EnsAtomFactory<Parameters, Success, Failure>) => <Mapped = Success>(input: UseEnsAtomParameters<Parameters, Success, Failure, Mapped>) => EnsAtomResult<Mapped, Failure>;
|
|
7
|
+
declare const prefetchAtom: <Success, Failure>(registry: AtomRegistry.AtomRegistry, atom: Atom.Atom<AsyncResult.AsyncResult<Success, Failure>>, signal?: AbortSignal) => Promise<Success>;
|
|
8
8
|
//#endregion
|
|
9
|
-
export { makeQueryHook,
|
|
9
|
+
export { makeQueryHook, prefetchAtom };
|
|
10
10
|
//# sourceMappingURL=use-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-query.d.ts","names":[],"sources":["../../src/hooks/use-query.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"use-query.d.ts","names":[],"sources":["../../src/hooks/use-query.ts"],"mappings":";;;;;cAiFa,gBACV,2BAA2B,SAAS,SACnC,SAAS,eAAe,YAAY,SAAS,cAE9C,SAAS,SACR,OAAO,qBAAqB,YAAY,SAAS,SAAS,YACzD,cAAc,QAAQ;cAGd,eAAgB,SAAS,SACpC,UAAU,aAAa,cACvB,MAAM,KAAK,KAAK,YAAY,YAAY,SAAS,WACjD,SAAS,gBACR,QAAQ"}
|
package/dist/hooks/use-query.js
CHANGED
|
@@ -1,81 +1,53 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
+
import { resolveEnsAtomOptions } from "../query/options.js";
|
|
3
4
|
import { useEnsforgeContext } from "../provider/context.js";
|
|
4
5
|
import { errorFromCause, resultUpdatedAt } from "../query/result.js";
|
|
5
|
-
import { resolveEnsQueryOptions } from "../query/options.js";
|
|
6
6
|
import { Effect, Option } from "effect";
|
|
7
7
|
import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
|
|
8
8
|
import { RegistryContext, useAtomValue } from "@effect/atom-react";
|
|
9
|
-
import { useContext
|
|
9
|
+
import { useContext } from "react";
|
|
10
10
|
|
|
11
11
|
//#region src/hooks/use-query.ts
|
|
12
12
|
const disabledAtom = Atom.make(AsyncResult.initial());
|
|
13
|
-
const
|
|
14
|
-
const {
|
|
15
|
-
return
|
|
13
|
+
const splitAtomParameters = (input) => {
|
|
14
|
+
const { atom, enabled = true, map, ...parameters } = input;
|
|
15
|
+
return {
|
|
16
|
+
atom,
|
|
17
|
+
enabled,
|
|
18
|
+
map,
|
|
19
|
+
parameters
|
|
20
|
+
};
|
|
16
21
|
};
|
|
17
22
|
const useQueryAtom = (factory, input) => {
|
|
18
23
|
const { defaults, sdk } = useEnsforgeContext();
|
|
19
24
|
const registry = useContext(RegistryContext);
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const enabled = query?.enabled ?? true;
|
|
23
|
-
const atom = factory(sdk, parameters, options);
|
|
25
|
+
const { atom: atomOptions, enabled, map, parameters } = splitAtomParameters(input);
|
|
26
|
+
const atom = factory(sdk, parameters, resolveEnsAtomOptions(defaults.atoms, atomOptions));
|
|
24
27
|
const rawResult = useAtomValue(enabled ? atom : disabledAtom);
|
|
25
|
-
const result =
|
|
26
|
-
const
|
|
27
|
-
useEffect(() => {
|
|
28
|
-
if (staleCheckedAtom.current === atom) return;
|
|
29
|
-
staleCheckedAtom.current = atom;
|
|
30
|
-
if (!enabled || !AsyncResult.isSuccess(rawResult)) return;
|
|
31
|
-
if (Date.now() - rawResult.timestamp >= options.staleTime) registry.refresh(atom);
|
|
32
|
-
}, [
|
|
33
|
-
atom,
|
|
34
|
-
enabled,
|
|
35
|
-
options.staleTime,
|
|
36
|
-
rawResult,
|
|
37
|
-
registry
|
|
38
|
-
]);
|
|
39
|
-
useEffect(() => {
|
|
40
|
-
if (!enabled || options.refetchInterval === false) return;
|
|
41
|
-
const interval = globalThis.setInterval(() => registry.refresh(atom), options.refetchInterval);
|
|
42
|
-
return () => globalThis.clearInterval(interval);
|
|
43
|
-
}, [
|
|
44
|
-
atom,
|
|
45
|
-
enabled,
|
|
46
|
-
options.refetchInterval,
|
|
47
|
-
registry
|
|
48
|
-
]);
|
|
49
|
-
const refetchEffect = () => {
|
|
28
|
+
const result = map === void 0 ? rawResult : AsyncResult.map(rawResult, map);
|
|
29
|
+
const refreshEffect = () => {
|
|
50
30
|
const effect = Effect.sync(() => registry.refresh(atom)).pipe(Effect.andThen(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true })));
|
|
51
|
-
return
|
|
31
|
+
return map === void 0 ? effect : effect.pipe(Effect.map(map));
|
|
52
32
|
};
|
|
53
33
|
const cause = Option.getOrNull(AsyncResult.cause(result));
|
|
54
|
-
const data = Option.getOrUndefined(AsyncResult.value(result));
|
|
55
|
-
const isPending = AsyncResult.isInitial(result);
|
|
56
|
-
const isError = AsyncResult.isFailure(result);
|
|
57
|
-
const isSuccess = AsyncResult.isSuccess(result);
|
|
58
34
|
return {
|
|
59
35
|
cause,
|
|
60
|
-
data,
|
|
36
|
+
data: Option.getOrUndefined(AsyncResult.value(result)),
|
|
61
37
|
error: cause === null ? null : errorFromCause(cause),
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
isSuccess,
|
|
69
|
-
refetch: () => Effect.runPromise(refetchEffect()),
|
|
70
|
-
refetchEffect,
|
|
38
|
+
isFailure: AsyncResult.isFailure(result),
|
|
39
|
+
isInitial: AsyncResult.isInitial(result),
|
|
40
|
+
isSuccess: AsyncResult.isSuccess(result),
|
|
41
|
+
isWaiting: result.waiting,
|
|
42
|
+
refresh: () => Effect.runPromise(refreshEffect()),
|
|
43
|
+
refreshEffect,
|
|
71
44
|
result,
|
|
72
|
-
status: isPending ? "pending" : isError ? "error" : "success",
|
|
73
45
|
updatedAt: resultUpdatedAt(result)
|
|
74
46
|
};
|
|
75
47
|
};
|
|
76
48
|
const makeQueryHook = (factory) => (input) => useQueryAtom(factory, input);
|
|
77
|
-
const
|
|
49
|
+
const prefetchAtom = (registry, atom, signal) => Effect.runPromise(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true }), { signal });
|
|
78
50
|
|
|
79
51
|
//#endregion
|
|
80
|
-
export { makeQueryHook,
|
|
52
|
+
export { makeQueryHook, prefetchAtom, useQueryAtom };
|
|
81
53
|
//# sourceMappingURL=use-query.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-query.js","names":[],"sources":["../../src/hooks/use-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext
|
|
1
|
+
{"version":3,"file":"use-query.js","names":[],"sources":["../../src/hooks/use-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext } from \"react\";\n\nimport { RegistryContext, useAtomValue } from \"@effect/atom-react\";\nimport { Effect, Option } from \"effect\";\nimport { AsyncResult, Atom, AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport type { EnsAtomFactory } from \"../atoms/query.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport {\n resolveEnsAtomOptions,\n type EnsAtomOptions,\n type UseEnsAtomParameters,\n} from \"../query/options.js\";\nimport { errorFromCause, resultUpdatedAt, type EnsAtomResult } from \"../query/result.js\";\n\nconst disabledAtom = Atom.make(AsyncResult.initial<unknown, unknown>());\n\ninterface SplitAtomParameters<Parameters, Success, Failure, Mapped> {\n readonly atom: EnsAtomOptions<Failure> | undefined;\n readonly enabled: boolean;\n readonly map: ((value: Success) => Mapped) | undefined;\n readonly parameters: Parameters;\n}\n\nconst splitAtomParameters = <Parameters extends object, Success, Failure, Mapped>(\n input: UseEnsAtomParameters<Parameters, Success, Failure, Mapped>,\n): SplitAtomParameters<Parameters, Success, Failure, Mapped> => {\n const { atom, enabled = true, map, ...parameters } = input;\n return { atom, enabled, map, parameters: parameters as Parameters };\n};\n\nexport const useQueryAtom = <Parameters extends object, Success, Failure, Mapped = Success>(\n factory: EnsAtomFactory<Parameters, Success, Failure>,\n input: UseEnsAtomParameters<Parameters, Success, Failure, Mapped>,\n): EnsAtomResult<Mapped, Failure> => {\n const { defaults, sdk } = useEnsforgeContext();\n const registry = useContext(RegistryContext);\n const { atom: atomOptions, enabled, map, parameters } = splitAtomParameters(input);\n const options = resolveEnsAtomOptions(defaults.atoms, atomOptions);\n const atom = factory(sdk, parameters, options);\n const activeAtom = (enabled ? atom : disabledAtom) as Atom.Atom<\n AsyncResult.AsyncResult<Success, Failure>\n >;\n const rawResult = useAtomValue(activeAtom);\n const result: AsyncResult.AsyncResult<Mapped, Failure> =\n map === undefined\n ? (rawResult as unknown as AsyncResult.AsyncResult<Mapped, Failure>)\n : AsyncResult.map(rawResult, map);\n\n const refreshEffect = (): Effect.Effect<Mapped, Failure> => {\n const effect = Effect.sync(() => registry.refresh(atom)).pipe(\n Effect.andThen(\n AtomRegistry.getResult(registry, atom, {\n suspendOnWaiting: true,\n }),\n ),\n );\n return map === undefined\n ? (effect as unknown as Effect.Effect<Mapped, Failure>)\n : effect.pipe(Effect.map(map));\n };\n\n const cause = Option.getOrNull(AsyncResult.cause(result));\n\n return {\n cause,\n data: Option.getOrUndefined(AsyncResult.value(result)),\n error: cause === null ? null : errorFromCause(cause),\n isFailure: AsyncResult.isFailure(result),\n isInitial: AsyncResult.isInitial(result),\n isSuccess: AsyncResult.isSuccess(result),\n isWaiting: result.waiting,\n refresh: () => Effect.runPromise(refreshEffect()),\n refreshEffect,\n result,\n updatedAt: resultUpdatedAt(result),\n };\n};\n\nexport const makeQueryHook =\n <Parameters extends object, Success, Failure>(\n factory: EnsAtomFactory<Parameters, Success, Failure>,\n ) =>\n <Mapped = Success>(\n input: UseEnsAtomParameters<Parameters, Success, Failure, Mapped>,\n ): EnsAtomResult<Mapped, Failure> =>\n useQueryAtom(factory, input);\n\nexport const prefetchAtom = <Success, Failure>(\n registry: AtomRegistry.AtomRegistry,\n atom: Atom.Atom<AsyncResult.AsyncResult<Success, Failure>>,\n signal?: AbortSignal,\n): Promise<Success> =>\n Effect.runPromise(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true }), {\n signal,\n });\n"],"mappings":";;;;;;;;;;;AAiBA,MAAM,eAAe,KAAK,KAAK,YAAY,QAA0B,CAAC;AAStE,MAAM,uBACJ,UAC8D;CAC9D,MAAM,EAAE,MAAM,UAAU,MAAM,KAAK,GAAG,eAAe;CACrD,OAAO;EAAE;EAAM;EAAS;EAAiB;CAAyB;AACpE;AAEA,MAAa,gBACX,SACA,UACmC;CACnC,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,EAAE,MAAM,aAAa,SAAS,KAAK,eAAe,oBAAoB,KAAK;CAEjF,MAAM,OAAO,QAAQ,KAAK,YADV,sBAAsB,SAAS,OAAO,WACV,CAAC;CAI7C,MAAM,YAAY,aAHE,UAAU,OAAO,YAGI;CACzC,MAAM,SACJ,QAAQ,SACH,YACD,YAAY,IAAI,WAAW,GAAG;CAEpC,MAAM,sBAAsD;EAC1D,MAAM,SAAS,OAAO,WAAW,SAAS,QAAQ,IAAI,CAAC,CAAC,CAAC,KACvD,OAAO,QACL,aAAa,UAAU,UAAU,MAAM,EACrC,kBAAkB,KACpB,CAAC,CACH,CACF;EACA,OAAO,QAAQ,SACV,SACD,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC;CACjC;CAEA,MAAM,QAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC;CAExD,OAAO;EACL;EACA,MAAM,OAAO,eAAe,YAAY,MAAM,MAAM,CAAC;EACrD,OAAO,UAAU,OAAO,OAAO,eAAe,KAAK;EACnD,WAAW,YAAY,UAAU,MAAM;EACvC,WAAW,YAAY,UAAU,MAAM;EACvC,WAAW,YAAY,UAAU,MAAM;EACvC,WAAW,OAAO;EAClB,eAAe,OAAO,WAAW,cAAc,CAAC;EAChD;EACA;EACA,WAAW,gBAAgB,MAAM;CACnC;AACF;AAEA,MAAa,iBAET,aAGA,UAEA,aAAa,SAAS,KAAK;AAE/B,MAAa,gBACX,UACA,MACA,WAEA,OAAO,WAAW,aAAa,UAAU,UAAU,MAAM,EAAE,kBAAkB,KAAK,CAAC,GAAG,EACpF,OACF,CAAC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { EnsAtomOptions } from "../query/options.js";
|
|
2
|
+
import { EnsAtomFactory } from "../atoms/query.js";
|
|
3
3
|
//#region src/hooks/use-suspense-query.d.ts
|
|
4
|
-
type
|
|
5
|
-
readonly
|
|
4
|
+
type UseEnsSuspenseAtomParameters<Parameters, Success, Failure, Mapped = Success> = Parameters & {
|
|
5
|
+
readonly atom?: EnsAtomOptions<Failure>;
|
|
6
|
+
readonly map?: (value: Success) => Mapped;
|
|
6
7
|
};
|
|
7
|
-
interface
|
|
8
|
+
interface EnsSuspenseAtomResult<Success> {
|
|
8
9
|
readonly data: Success;
|
|
9
|
-
readonly
|
|
10
|
+
readonly isWaiting: boolean;
|
|
10
11
|
readonly updatedAt: number;
|
|
11
12
|
}
|
|
12
|
-
declare const makeSuspenseQueryHook: <Parameters extends object, Success, Failure>(factory:
|
|
13
|
+
declare const makeSuspenseQueryHook: <Parameters extends object, Success, Failure>(factory: EnsAtomFactory<Parameters, Success, Failure>) => <Mapped = Success>(input: UseEnsSuspenseAtomParameters<Parameters, Success, Failure, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
13
14
|
//#endregion
|
|
14
|
-
export {
|
|
15
|
+
export { EnsSuspenseAtomResult, UseEnsSuspenseAtomParameters, makeSuspenseQueryHook };
|
|
15
16
|
//# sourceMappingURL=use-suspense-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-suspense-query.d.ts","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"mappings":";;;KAYY,
|
|
1
|
+
{"version":3,"file":"use-suspense-query.d.ts","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"mappings":";;;KAYY,6BACV,YACA,SACA,SACA,SAAS,WACP;WACO,OAAO,eAAe;WACtB,OAAO,OAAO,YAAY;;UAGpB,sBAAsB;WAC5B,MAAM;WACN;WACA;;cAGE,wBACV,2BAA2B,SAAS,SACnC,SAAS,eAAe,YAAY,SAAS,cAE9C,SAAS,SACR,OAAO,6BAA6B,YAAY,SAAS,SAAS,YACjE,sBAAsB"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
+
import { resolveEnsAtomOptions } from "../query/options.js";
|
|
3
4
|
import { useEnsforgeContext } from "../provider/context.js";
|
|
4
|
-
import { resolveEnsQueryOptions } from "../query/options.js";
|
|
5
5
|
import { useAtomSuspense } from "@effect/atom-react";
|
|
6
6
|
|
|
7
7
|
//#region src/hooks/use-suspense-query.ts
|
|
8
8
|
const makeSuspenseQueryHook = (factory) => (input) => {
|
|
9
9
|
const { defaults, sdk } = useEnsforgeContext();
|
|
10
|
-
const {
|
|
11
|
-
const atom = factory(sdk, parameters,
|
|
10
|
+
const { atom: atomOptions, map, ...parameters } = input;
|
|
11
|
+
const atom = factory(sdk, parameters, resolveEnsAtomOptions(defaults.atoms, atomOptions));
|
|
12
12
|
const result = useAtomSuspense(atom, { suspendOnWaiting: false });
|
|
13
13
|
return {
|
|
14
|
-
data:
|
|
15
|
-
|
|
14
|
+
data: map === void 0 ? result.value : map(result.value),
|
|
15
|
+
isWaiting: result.waiting,
|
|
16
16
|
updatedAt: result.timestamp
|
|
17
17
|
};
|
|
18
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-suspense-query.js","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useAtomSuspense } from \"@effect/atom-react\";\n\nimport type {
|
|
1
|
+
{"version":3,"file":"use-suspense-query.js","names":[],"sources":["../../src/hooks/use-suspense-query.ts"],"sourcesContent":["\"use client\";\n\nimport { useAtomSuspense } from \"@effect/atom-react\";\n\nimport type { EnsAtomFactory } from \"../atoms/query.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport {\n resolveEnsAtomOptions,\n type EnsAtomOptions,\n type UseEnsAtomParameters,\n} from \"../query/options.js\";\n\nexport type UseEnsSuspenseAtomParameters<\n Parameters,\n Success,\n Failure,\n Mapped = Success,\n> = Parameters & {\n readonly atom?: EnsAtomOptions<Failure>;\n readonly map?: (value: Success) => Mapped;\n};\n\nexport interface EnsSuspenseAtomResult<Success> {\n readonly data: Success;\n readonly isWaiting: boolean;\n readonly updatedAt: number;\n}\n\nexport const makeSuspenseQueryHook =\n <Parameters extends object, Success, Failure>(\n factory: EnsAtomFactory<Parameters, Success, Failure>,\n ) =>\n <Mapped = Success>(\n input: UseEnsSuspenseAtomParameters<Parameters, Success, Failure, Mapped>,\n ): EnsSuspenseAtomResult<Mapped> => {\n const { defaults, sdk } = useEnsforgeContext();\n const {\n atom: atomOptions,\n map,\n ...parameters\n } = input as UseEnsAtomParameters<Parameters, Success, Failure, Mapped>;\n const options = resolveEnsAtomOptions(defaults.atoms, atomOptions);\n const atom = factory(sdk, parameters as Parameters, options);\n const result = useAtomSuspense(atom, { suspendOnWaiting: false });\n\n return {\n data: map === undefined ? (result.value as unknown as Mapped) : map(result.value),\n isWaiting: result.waiting,\n updatedAt: result.timestamp,\n };\n };\n"],"mappings":";;;;;;;AA4BA,MAAa,yBAET,aAGA,UACkC;CAClC,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,EACJ,MAAM,aACN,KACA,GAAG,eACD;CAEJ,MAAM,OAAO,QAAQ,KAAK,YADV,sBAAsB,SAAS,OAAO,WACI,CAAC;CAC3D,MAAM,SAAS,gBAAgB,MAAM,EAAE,kBAAkB,MAAM,CAAC;CAEhE,OAAO;EACL,MAAM,QAAQ,SAAa,OAAO,QAA8B,IAAI,OAAO,KAAK;EAChF,WAAW,OAAO;EAClB,WAAW,OAAO;CACpB;AACF"}
|
package/dist/hooks/wrapping.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { UseEnsAtomParameters } from "../query/options.js";
|
|
2
|
+
import { EnsSuspenseAtomResult, UseEnsSuspenseAtomParameters } from "./use-suspense-query.js";
|
|
3
|
+
import { EnsAtomResult } from "../query/result.js";
|
|
4
4
|
import { EnsMutationOptions } from "../mutation/options.js";
|
|
5
5
|
import { EnsMutationResult } from "../mutation/result.js";
|
|
6
6
|
import "../index.js";
|
|
7
7
|
//#region src/hooks/wrapping.d.ts
|
|
8
|
-
declare const useFuses: <
|
|
9
|
-
declare const useFusesSuspense: <
|
|
10
|
-
declare const useWrapperExpiry: <
|
|
11
|
-
declare const useWrapperExpirySuspense: <
|
|
8
|
+
declare const useFuses: <Mapped = import("@ensforge/core").GetFusesResult>(input: UseEnsAtomParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetFusesResult, import("@ensforge/core").GetCanonicalResourceError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").GetCanonicalResourceError>;
|
|
9
|
+
declare const useFusesSuspense: <Mapped = import("@ensforge/core").GetFusesResult>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetFusesResult, import("@ensforge/core").GetCanonicalResourceError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
10
|
+
declare const useWrapperExpiry: <Mapped = import("@ensforge/core").GetWrapperExpiryResult>(input: UseEnsAtomParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetWrapperExpiryResult, import("@ensforge/core").GetCanonicalResourceError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").GetCanonicalResourceError>;
|
|
11
|
+
declare const useWrapperExpirySuspense: <Mapped = import("@ensforge/core").GetWrapperExpiryResult>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").WrapperReadParameters, import("@ensforge/core").GetWrapperExpiryResult, import("@ensforge/core").GetCanonicalResourceError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
12
12
|
declare const useExtendSubnameExpiry: (options?: EnsMutationOptions<import("@ensforge/core").ExtendSubnameExpiryParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").ExtendSubnameExpiryParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
13
13
|
declare const useSetChildFuses: (options?: EnsMutationOptions<import("@ensforge/core").SetChildFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").SetChildFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
14
14
|
declare const useSetFuses: (options?: EnsMutationOptions<import("@ensforge/core").SetFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").SetFusesParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapping.d.ts","names":[],"sources":["../../src/hooks/wrapping.ts"],"mappings":";;;;;;;cAea,WAAQ,
|
|
1
|
+
{"version":3,"file":"wrapping.d.ts","names":[],"sources":["../../src/hooks/wrapping.ts"],"mappings":";;;;;;;cAea,WAAQ,kCAAA,gBAAA,OAAA,8CAAA,gDAAA,yCAAA,2BAAA,YAAA,cAAA,iCAAA;cACR,mBAAgB,kCAAA,gBAAA,OAAA,sDAAA,gDAAA,yCAAA,2BAAA,YAAA,sBAAA;cAChB,mBAAgB,kCAAA,wBAAA,OAAA,8CAAA,gDAAA,iDAAA,2BAAA,YAAA,cAAA,iCAAA;cAChB,2BAAwB,kCAAA,wBAAA,OAAA,sDAAA,gDAAA,iDAAA,2BAAA,YAAA,sBAAA;cAExB,yBAAsB,UAAtB,4CAAsB,wDAAA,8CAAA,gBAAA,2CAAA,wDAAA,8CAAA;cACtB,mBAAgB,UAAhB,4CAAgB,kDAAA,8CAAA,gBAAA,2CAAA,kDAAA,8CAAA;cAChB,cAAW,UAAX,4CAAW,6CAAA,8CAAA,gBAAA,2CAAA,6CAAA,8CAAA;cACX,gBAAa,UAAb,4CAAa,+CAAA,8CAAA,gBAAA,2CAAA,+CAAA,8CAAA;cACb,cAAW,UAAX,4CAAW,6CAAA,yCAAA,gBAAA,2CAAA,6CAAA,yCAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { EnsAtomDefaults, EnsAtomOptions, EnsAtomSwrOptions, ResolvedEnsAtomOptions, ResolvedEnsAtomSwrOptions, UseEnsAtomParameters, defaultEnsAtomOptions } from "./query/options.js";
|
|
2
|
+
import { Invalidation, invalidate, invalidateEffect, makeInvalidationKeys } from "./cache/invalidation.js";
|
|
3
|
+
import { prefetch, prefetchEffect } from "./cache/prefetch.js";
|
|
4
|
+
import { CreateRegistryOptions, createRegistry } from "./cache/registry.js";
|
|
4
5
|
import "./cache.js";
|
|
5
|
-
import {
|
|
6
|
-
import { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters, makeSuspenseQueryHook } from "./hooks/use-suspense-query.js";
|
|
6
|
+
import { EnsSuspenseAtomResult, UseEnsSuspenseAtomParameters, makeSuspenseQueryHook } from "./hooks/use-suspense-query.js";
|
|
7
7
|
import { useCallsStatus, useCallsStatusSuspense, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, usePrepareCalls, usePrepareCallsSuspense, useResumeCalls, useSendCalls, useSimulateCalls, useSimulateCallsSuspense, useWalletCapabilities, useWalletCapabilitiesSuspense } from "./hooks/batch.js";
|
|
8
8
|
import { useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useOperatorApproval, useOperatorApprovalSuspense, useRecordPermissions, useRecordPermissionsSuspense, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useTokenApproval, useTokenApprovalSuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense } from "./hooks/capabilities.js";
|
|
9
9
|
import { useClaimDnsName, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useHasDnsRecords, useHasDnsRecordsSuspense, useImportDnsName, useSetDnsRecords, useSetZoneHash, useZoneHash, useZoneHashSuspense } from "./hooks/dns.js";
|
|
@@ -18,13 +18,13 @@ import { useAlias, useAliasSuspense, useCreateResolver, useGetOrCreateResolver,
|
|
|
18
18
|
import { useClearPrimaryName, usePrimaryName, usePrimaryNameSuspense, useSetContractPrimaryName, useSetPrimaryName, useSetPrimaryNameForAddress } from "./hooks/reverse.js";
|
|
19
19
|
import { useCreateSubname, useDeleteSubname, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useTransferSubname } from "./hooks/subnames.js";
|
|
20
20
|
import { useExtendSubnameExpiry, useFuses, useFusesSuspense, useSetChildFuses, useSetFuses, useUnwrapName, useWrapName, useWrapperExpiry, useWrapperExpirySuspense } from "./hooks/wrapping.js";
|
|
21
|
-
import {
|
|
21
|
+
import { EnsAtomResult } from "./query/result.js";
|
|
22
22
|
import { useReadBatch, useReadBatchSettled, useRecords } from "./hooks/generic.js";
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import { EnsMutationResult
|
|
23
|
+
import { Invalidate, useInvalidate } from "./hooks/use-cache.js";
|
|
24
|
+
import { EnsMutationDefaults, EnsMutationExecutionOptions, EnsMutationOptions } from "./mutation/options.js";
|
|
25
|
+
import { EnsMutationResult } from "./mutation/result.js";
|
|
26
26
|
import { makeMutationHook } from "./hooks/use-mutation.js";
|
|
27
|
-
import { makeQueryHook,
|
|
27
|
+
import { makeQueryHook, prefetchAtom } from "./hooks/use-query.js";
|
|
28
28
|
import "./hooks/index.js";
|
|
29
29
|
import { EnsforgeReactDefaults } from "./provider/context.js";
|
|
30
30
|
import { EnsforgeProvider, EnsforgeProviderProps } from "./provider/ensforge-provider.js";
|
|
@@ -32,4 +32,4 @@ import { useEnsforge, useEnsforgeRegistry } from "./provider/hooks.js";
|
|
|
32
32
|
import "./provider/index.js";
|
|
33
33
|
import { Ensforge } from "@ensforge/sdk";
|
|
34
34
|
export type * from "@ensforge/sdk";
|
|
35
|
-
export { type
|
|
35
|
+
export { type CreateRegistryOptions, type EnsAtomDefaults, type EnsAtomOptions, type EnsAtomResult, type EnsAtomSwrOptions, type EnsMutationDefaults, type EnsMutationExecutionOptions, type EnsMutationOptions, type EnsMutationResult, type EnsSuspenseAtomResult, Ensforge, EnsforgeProvider, type EnsforgeProviderProps, type EnsforgeReactDefaults, type Invalidate, type Invalidation, type ResolvedEnsAtomOptions, type ResolvedEnsAtomSwrOptions, type UseEnsAtomParameters, type UseEnsSuspenseAtomParameters, createRegistry, defaultEnsAtomOptions, invalidate, invalidateEffect, makeInvalidationKeys, makeMutationHook, makeQueryHook, makeSuspenseQueryHook, prefetch, prefetchAtom, prefetchEffect, useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAlias, useAliasSuspense, useApproveMigration, useApproveName, useApprovePaymentToken, useApproveRenewalPayment, useAvatar, useAvatarSuspense, useCallsStatus, useCallsStatusSuspense, useCanonicalResource, useCanonicalResourceSuspense, useClaimDnsName, useClearAvatar, useClearNameApproval, useClearPrimaryName, useClearRecords, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useContentHash, useContentHashSuspense, useCreateResolver, useCreateSubname, useData, useDataSuspense, useDeleteSubname, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useEnsEvents, useEnsEventsSuspense, useEnsforge, useEnsforgeRegistry, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, useExpiry, useExpirySuspense, useExtendSubnameExpiry, useFuses, useFusesSuspense, useGetOrCreateResolver, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useHasDnsRecords, useHasDnsRecordsSuspense, useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useImportDnsName, useInterface, useInterfaceSuspense, useInvalidate, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useNameHistory, useNameHistorySuspense, useNameRecord, useNameRecordSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOperatorApproval, useOperatorApprovalSuspense, useOwner, useOwnerSuspense, usePredictResolverAddress, usePredictResolverAddressSuspense, usePrepareCalls, usePrepareCallsSuspense, usePrimaryName, usePrimaryNameSuspense, useProtocol, useProtocolSuspense, usePubkey, usePubkeySuspense, useReadBatch, useReadBatchSettled, useReclaimName, useRecordPermissions, useRecordPermissionsSuspense, useRecords, useRegisterName, useRegisterNames, useRegistrant, useRegistrantSuspense, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRegistry, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRegistrySuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useResumeCalls, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSendCalls, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetChildFuses, useSetContentHash, useSetContractPrimaryName, useSetData, useSetDnsRecords, useSetFuses, useSetInterface, useSetManager, useSetName, useSetOperatorApproval, useSetPrimaryName, useSetPrimaryNameForAddress, useSetPubkey, useSetRecordPermissions, useSetRecords, useSetResolver, useSetResolverAndRecords, useSetResolverDelegateApproval, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useSetText, useSetTexts, useSetTtl, useSetZoneHash, useSimulateCalls, useSimulateCallsSuspense, useText, useTextSuspense, useTexts, useTextsSuspense, useTokenApproval, useTokenApprovalSuspense, useTokenId, useTokenIdSuspense, useTransferName, useTransferRegistrant, useTransferSubname, useTtl, useTtlSuspense, useUnwrapName, useUpgradeResolver, useWalletCapabilities, useWalletCapabilitiesSuspense, useWatchEnsEvents, useWrapName, useWrapperExpiry, useWrapperExpirySuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense, useZoneHash, useZoneHashSuspense };
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { invalidate, invalidateEffect, makeInvalidationKeys } from "./cache/invalidation.js";
|
|
4
|
+
import { prefetch, prefetchEffect } from "./cache/prefetch.js";
|
|
5
|
+
import { createRegistry } from "./cache/registry.js";
|
|
6
|
+
import { defaultEnsAtomOptions } from "./query/options.js";
|
|
6
7
|
import { makeMutationHook } from "./hooks/use-mutation.js";
|
|
7
|
-
import {
|
|
8
|
-
import { makeQueryHook, prefetchQueryAtom } from "./hooks/use-query.js";
|
|
8
|
+
import { makeQueryHook, prefetchAtom } from "./hooks/use-query.js";
|
|
9
9
|
import { makeSuspenseQueryHook } from "./hooks/use-suspense-query.js";
|
|
10
10
|
import { useCallsStatus, useCallsStatusSuspense, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, usePrepareCalls, usePrepareCallsSuspense, useResumeCalls, useSendCalls, useSimulateCalls, useSimulateCallsSuspense, useWalletCapabilities, useWalletCapabilitiesSuspense } from "./hooks/batch.js";
|
|
11
11
|
import { useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useOperatorApproval, useOperatorApprovalSuspense, useRecordPermissions, useRecordPermissionsSuspense, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useTokenApproval, useTokenApprovalSuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense } from "./hooks/capabilities.js";
|
|
@@ -22,9 +22,9 @@ import { useClearPrimaryName, usePrimaryName, usePrimaryNameSuspense, useSetCont
|
|
|
22
22
|
import { useCreateSubname, useDeleteSubname, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useTransferSubname } from "./hooks/subnames.js";
|
|
23
23
|
import { useExtendSubnameExpiry, useFuses, useFusesSuspense, useSetChildFuses, useSetFuses, useUnwrapName, useWrapName, useWrapperExpiry, useWrapperExpirySuspense } from "./hooks/wrapping.js";
|
|
24
24
|
import { useReadBatch, useReadBatchSettled, useRecords } from "./hooks/generic.js";
|
|
25
|
-
import {
|
|
25
|
+
import { useInvalidate } from "./hooks/use-cache.js";
|
|
26
26
|
import { EnsforgeProvider } from "./provider/ensforge-provider.js";
|
|
27
27
|
import { useEnsforge, useEnsforgeRegistry } from "./provider/hooks.js";
|
|
28
28
|
import { Ensforge } from "@ensforge/sdk";
|
|
29
29
|
|
|
30
|
-
export { Ensforge, EnsforgeProvider,
|
|
30
|
+
export { Ensforge, EnsforgeProvider, createRegistry, defaultEnsAtomOptions, invalidate, invalidateEffect, makeInvalidationKeys, makeMutationHook, makeQueryHook, makeSuspenseQueryHook, prefetch, prefetchAtom, prefetchEffect, useAbi, useAbiSuspense, useAddress, useAddressSuspense, useAddresses, useAddressesSuspense, useAlias, useAliasSuspense, useApproveMigration, useApproveName, useApprovePaymentToken, useApproveRenewalPayment, useAvatar, useAvatarSuspense, useCallsStatus, useCallsStatusSuspense, useCanonicalResource, useCanonicalResourceSuspense, useClaimDnsName, useClearAvatar, useClearNameApproval, useClearPrimaryName, useClearRecords, useCommitName, useCommitmentStatus, useCommitmentStatusSuspense, useCompleteRegistration, useContentHash, useContentHashSuspense, useCreateResolver, useCreateSubname, useData, useDataSuspense, useDeleteSubname, useDnsClaimStatus, useDnsClaimStatusSuspense, useDnsImportPlan, useDnsImportPlanSuspense, useDnsRecord, useDnsRecordSuspense, useDnsRecords, useDnsRecordsSuspense, useEnsEvents, useEnsEventsSuspense, useEnsforge, useEnsforgeRegistry, useEstimateCalls, useEstimateCallsSuspense, useExecuteWritePlan, useExpiry, useExpirySuspense, useExtendSubnameExpiry, useFuses, useFusesSuspense, useGetOrCreateResolver, useGrantRegistryRoles, useGrantResolverRoles, useGrantResolverRootRoles, useHasDnsRecords, useHasDnsRecordsSuspense, useHasRegistryRoles, useHasRegistryRolesSuspense, useHasResolverRoles, useHasResolverRolesSuspense, useImportDnsName, useInterface, useInterfaceSuspense, useInvalidate, useIsAvailable, useIsAvailableSuspense, useIsMigrated, useIsMigratedSuspense, useIsPaymentTokenSupported, useIsPaymentTokenSupportedSuspense, useIsRenewable, useIsRenewableSuspense, useIsReserved, useIsReservedSuspense, useIsWrapped, useIsWrappedSuspense, useManager, useManagerSuspense, useMigrateName, useMigrateNames, useMigrationEligibility, useMigrationEligibilitySuspense, useMigrationPlan, useMigrationPlanSuspense, useMigrationStatus, useMigrationStatusSuspense, useMigrationTarget, useMigrationTargetSuspense, useNameCapabilities, useNameCapabilitiesSuspense, useNameHistory, useNameHistorySuspense, useNameRecord, useNameRecordSuspense, useNameState, useNameStateSuspense, useNameStatus, useNameStatusSuspense, useOperatorApproval, useOperatorApprovalSuspense, useOwner, useOwnerSuspense, usePredictResolverAddress, usePredictResolverAddressSuspense, usePrepareCalls, usePrepareCallsSuspense, usePrimaryName, usePrimaryNameSuspense, useProtocol, useProtocolSuspense, usePubkey, usePubkeySuspense, useReadBatch, useReadBatchSettled, useReclaimName, useRecordPermissions, useRecordPermissionsSuspense, useRecords, useRegisterName, useRegisterNames, useRegistrant, useRegistrantSuspense, useRegistrationCommitment, useRegistrationCommitmentSuspense, useRegistrationParameters, useRegistrationParametersSuspense, useRegistrationPlan, useRegistrationPlanSuspense, useRegistrationPrice, useRegistrationPriceSuspense, useRegistry, useRegistryCapabilities, useRegistryCapabilitiesSuspense, useRegistryRoles, useRegistryRolesSuspense, useRegistrySuspense, useRenewName, useRenewNames, useRenewalPrice, useRenewalPriceSuspense, useRequiredAuthorization, useRequiredAuthorizationSuspense, useResolve, useResolveBatch, useResolveBatchSuspense, useResolveSuspense, useResolveWithResolver, useResolveWithResolverSuspense, useResolver, useResolverCapabilities, useResolverCapabilitiesSuspense, useResolverDelegateApproval, useResolverDelegateApprovalSuspense, useResolverRoles, useResolverRolesSuspense, useResolverSuspense, useResolverVersion, useResolverVersionSuspense, useResumeCalls, useRevokeRegistryRoles, useRevokeResolverRoles, useRevokeResolverRootRoles, useSendCalls, useSetAbi, useSetAddress, useSetAddresses, useSetAlias, useSetAvatar, useSetChildFuses, useSetContentHash, useSetContractPrimaryName, useSetData, useSetDnsRecords, useSetFuses, useSetInterface, useSetManager, useSetName, useSetOperatorApproval, useSetPrimaryName, useSetPrimaryNameForAddress, useSetPubkey, useSetRecordPermissions, useSetRecords, useSetResolver, useSetResolverAndRecords, useSetResolverDelegateApproval, useSetSubnameExpiry, useSetSubnameManager, useSetSubnameRecord, useSetSubnameResolver, useSetText, useSetTexts, useSetTtl, useSetZoneHash, useSimulateCalls, useSimulateCallsSuspense, useText, useTextSuspense, useTexts, useTextsSuspense, useTokenApproval, useTokenApprovalSuspense, useTokenId, useTokenIdSuspense, useTransferName, useTransferRegistrant, useTransferSubname, useTtl, useTtlSuspense, useUnwrapName, useUpgradeResolver, useWalletCapabilities, useWalletCapabilitiesSuspense, useWatchEnsEvents, useWrapName, useWrapperExpiry, useWrapperExpirySuspense, useWrapperPermissions, useWrapperPermissionsSuspense, useWriteTarget, useWriteTargetSuspense, useZoneHash, useZoneHashSuspense };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { Exit, Schedule } from "effect";
|
|
1
2
|
//#region src/mutation/options.d.ts
|
|
2
|
-
interface
|
|
3
|
-
readonly
|
|
4
|
-
readonly onSettled?: (data: Success | undefined, error: Failure | Error | null, parameters: Parameters) => void;
|
|
5
|
-
readonly onSuccess?: (data: Success, parameters: Parameters) => void;
|
|
3
|
+
interface EnsMutationExecutionOptions<Parameters, Success, Failure> {
|
|
4
|
+
readonly onExit?: (exit: Exit.Exit<Success, Failure>, parameters: Parameters) => void;
|
|
6
5
|
}
|
|
7
|
-
interface EnsMutationOptions<Parameters, Success, Failure> extends
|
|
8
|
-
readonly retry?: false |
|
|
6
|
+
interface EnsMutationOptions<Parameters, Success, Failure> extends EnsMutationExecutionOptions<Parameters, Success, Failure> {
|
|
7
|
+
readonly retry?: false | Schedule.Schedule<unknown, Failure>;
|
|
8
|
+
}
|
|
9
|
+
interface EnsMutationDefaults {
|
|
10
|
+
readonly retry?: false | Schedule.Schedule<unknown, unknown>;
|
|
9
11
|
}
|
|
10
12
|
//#endregion
|
|
11
|
-
export {
|
|
13
|
+
export { EnsMutationDefaults, EnsMutationExecutionOptions, EnsMutationOptions };
|
|
12
14
|
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","names":[],"sources":["../../src/mutation/options.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.d.ts","names":[],"sources":["../../src/mutation/options.ts"],"mappings":";;UAEiB,4BAA4B,YAAY,SAAS;WACvD,UAAU,MAAM,KAAK,KAAK,SAAS,UAAU,YAAY;;UAGnD,mBACf,YACA,SACA,iBACQ,4BAA4B,YAAY,SAAS;WAChD,gBAAgB,SAAS,kBAAkB;;UAGrC;WACN,gBAAgB,SAAS"}
|
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EnsMutationExecutionOptions } from "./options.js";
|
|
2
2
|
import { Cause, Effect } from "effect";
|
|
3
3
|
import { AsyncResult } from "effect/unstable/reactivity";
|
|
4
4
|
//#region src/mutation/result.d.ts
|
|
5
|
-
type EnsMutationStatus = "idle" | "pending" | "success" | "error";
|
|
6
5
|
interface EnsMutationResult<Parameters, Success, Failure> {
|
|
7
6
|
readonly cause: Cause.Cause<Failure> | null;
|
|
8
7
|
readonly data: Success | undefined;
|
|
9
8
|
readonly error: Failure | Error | null;
|
|
10
|
-
readonly
|
|
11
|
-
readonly isError: boolean;
|
|
12
|
-
readonly isIdle: boolean;
|
|
13
|
-
readonly isPending: boolean;
|
|
14
|
-
readonly isSuccess: boolean;
|
|
15
|
-
readonly mutate: (parameters: Parameters, callbacks?: EnsMutationCallbacks<Parameters, Success, Failure>) => void;
|
|
9
|
+
readonly mutate: (parameters: Parameters, options?: EnsMutationExecutionOptions<Parameters, Success, Failure>) => void;
|
|
16
10
|
readonly mutateAsync: (parameters: Parameters) => Promise<Success>;
|
|
17
11
|
readonly mutateEffect: (parameters: Parameters) => Effect.Effect<Success, Failure>;
|
|
12
|
+
readonly interrupt: () => void;
|
|
13
|
+
readonly isFailure: boolean;
|
|
14
|
+
readonly isInitial: boolean;
|
|
15
|
+
readonly isSuccess: boolean;
|
|
16
|
+
readonly isWaiting: boolean;
|
|
18
17
|
readonly parameters: Parameters | undefined;
|
|
19
18
|
readonly reset: () => void;
|
|
20
19
|
readonly result: AsyncResult.AsyncResult<Success, Failure>;
|
|
21
|
-
readonly status: EnsMutationStatus;
|
|
22
20
|
}
|
|
23
21
|
//#endregion
|
|
24
|
-
export { EnsMutationResult
|
|
22
|
+
export { EnsMutationResult };
|
|
25
23
|
//# sourceMappingURL=result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","names":[],"sources":["../../src/mutation/result.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"result.d.ts","names":[],"sources":["../../src/mutation/result.ts"],"mappings":";;;;UAKiB,kBAAkB,YAAY,SAAS;WAC7C,OAAO,MAAM,MAAM;WACnB,MAAM;WACN,OAAO,UAAU;WACjB,SACP,YAAY,YACZ,UAAU,4BAA4B,YAAY,SAAS;WAEpD,cAAc,YAAY,eAAe,QAAQ;WACjD,eAAe,YAAY,eAAe,OAAO,OAAO,SAAS;WACjE;WACA;WACA;WACA;WACA;WACA,YAAY;WACZ;WACA,QAAQ,YAAY,YAAY,SAAS"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EnsAtomDefaults } from "../query/options.js";
|
|
2
|
+
import { EnsMutationDefaults } from "../mutation/options.js";
|
|
2
3
|
import { Ensforge } from "@ensforge/sdk";
|
|
3
4
|
//#region src/provider/context.d.ts
|
|
4
5
|
interface EnsforgeReactDefaults {
|
|
5
|
-
readonly
|
|
6
|
+
readonly atoms?: EnsAtomDefaults;
|
|
7
|
+
readonly mutations?: EnsMutationDefaults;
|
|
6
8
|
}
|
|
7
9
|
//#endregion
|
|
8
10
|
export { EnsforgeReactDefaults };
|