@ensforge/react 0.0.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 +29 -29
- 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 +23 -23
- 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 +98 -98
- 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 +73 -73
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.d.ts","names":[],"sources":["../../src/hooks/registration.ts"],"mappings":";;;;;;;cAuBa,sBAAmB;;;;;;;;;;;;;;;;;;;;;;;UAAyC;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"registration.d.ts","names":[],"sources":["../../src/hooks/registration.ts"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
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/resolution.d.ts
|
|
8
|
-
declare const useAlias: <
|
|
8
|
+
declare const useAlias: <Mapped = {
|
|
9
9
|
readonly supported: false;
|
|
10
10
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
11
11
|
readonly resolver: `0x${string}` | null;
|
|
@@ -16,7 +16,7 @@ declare const useAlias: <Selected = {
|
|
|
16
16
|
readonly resolver: `0x${string}`;
|
|
17
17
|
readonly target: (string & import("effect/Brand").Brand<"NormalizedName">) | null;
|
|
18
18
|
readonly raw: `0x${string}`;
|
|
19
|
-
}>(input:
|
|
19
|
+
}>(input: UseEnsAtomParameters<import("@ensforge/core").GetAliasParameters, {
|
|
20
20
|
readonly supported: false;
|
|
21
21
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
22
22
|
readonly resolver: `0x${string}` | null;
|
|
@@ -27,8 +27,8 @@ declare const useAlias: <Selected = {
|
|
|
27
27
|
readonly resolver: `0x${string}`;
|
|
28
28
|
readonly target: (string & import("effect/Brand").Brand<"NormalizedName">) | null;
|
|
29
29
|
readonly raw: `0x${string}`;
|
|
30
|
-
},
|
|
31
|
-
declare const useAliasSuspense: <
|
|
30
|
+
}, import("@ensforge/core").GetAliasError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").GetAliasError>;
|
|
31
|
+
declare const useAliasSuspense: <Mapped = {
|
|
32
32
|
readonly supported: false;
|
|
33
33
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
34
34
|
readonly resolver: `0x${string}` | null;
|
|
@@ -39,7 +39,7 @@ declare const useAliasSuspense: <Selected = {
|
|
|
39
39
|
readonly resolver: `0x${string}`;
|
|
40
40
|
readonly target: (string & import("effect/Brand").Brand<"NormalizedName">) | null;
|
|
41
41
|
readonly raw: `0x${string}`;
|
|
42
|
-
}>(input:
|
|
42
|
+
}>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").GetAliasParameters, {
|
|
43
43
|
readonly supported: false;
|
|
44
44
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
45
45
|
readonly resolver: `0x${string}` | null;
|
|
@@ -50,10 +50,10 @@ declare const useAliasSuspense: <Selected = {
|
|
|
50
50
|
readonly resolver: `0x${string}`;
|
|
51
51
|
readonly target: (string & import("effect/Brand").Brand<"NormalizedName">) | null;
|
|
52
52
|
readonly raw: `0x${string}`;
|
|
53
|
-
},
|
|
54
|
-
declare const useResolver: <
|
|
55
|
-
declare const useResolverSuspense: <
|
|
56
|
-
declare const useResolverVersion: <
|
|
53
|
+
}, import("@ensforge/core").GetAliasError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
54
|
+
declare const useResolver: <Mapped = import("@ensforge/core").GetResolverResult>(input: UseEnsAtomParameters<import("@ensforge/core").GetResolverParameters, import("@ensforge/core").GetResolverResult, import("@ensforge/core").GetResolverError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").GetResolverError>;
|
|
55
|
+
declare const useResolverSuspense: <Mapped = import("@ensforge/core").GetResolverResult>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").GetResolverParameters, import("@ensforge/core").GetResolverResult, import("@ensforge/core").GetResolverError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
56
|
+
declare const useResolverVersion: <Mapped = {
|
|
57
57
|
readonly supported: false;
|
|
58
58
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
59
59
|
readonly resolver: `0x${string}` | null;
|
|
@@ -63,7 +63,7 @@ declare const useResolverVersion: <Selected = {
|
|
|
63
63
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
64
64
|
readonly resolver: `0x${string}`;
|
|
65
65
|
readonly version: bigint;
|
|
66
|
-
}>(input:
|
|
66
|
+
}>(input: UseEnsAtomParameters<import("@ensforge/core").GetResolverVersionParameters, {
|
|
67
67
|
readonly supported: false;
|
|
68
68
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
69
69
|
readonly resolver: `0x${string}` | null;
|
|
@@ -73,8 +73,8 @@ declare const useResolverVersion: <Selected = {
|
|
|
73
73
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
74
74
|
readonly resolver: `0x${string}`;
|
|
75
75
|
readonly version: bigint;
|
|
76
|
-
},
|
|
77
|
-
declare const useResolverVersionSuspense: <
|
|
76
|
+
}, import("@ensforge/core").GetResolverError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").GetResolverError>;
|
|
77
|
+
declare const useResolverVersionSuspense: <Mapped = {
|
|
78
78
|
readonly supported: false;
|
|
79
79
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
80
80
|
readonly resolver: `0x${string}` | null;
|
|
@@ -84,7 +84,7 @@ declare const useResolverVersionSuspense: <Selected = {
|
|
|
84
84
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
85
85
|
readonly resolver: `0x${string}`;
|
|
86
86
|
readonly version: bigint;
|
|
87
|
-
}>(input:
|
|
87
|
+
}>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").GetResolverVersionParameters, {
|
|
88
88
|
readonly supported: false;
|
|
89
89
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
90
90
|
readonly resolver: `0x${string}` | null;
|
|
@@ -94,39 +94,39 @@ declare const useResolverVersionSuspense: <Selected = {
|
|
|
94
94
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
95
95
|
readonly resolver: `0x${string}`;
|
|
96
96
|
readonly version: bigint;
|
|
97
|
-
},
|
|
98
|
-
declare const usePredictResolverAddress: <
|
|
99
|
-
declare const usePredictResolverAddressSuspense: <
|
|
100
|
-
declare const useResolve: <
|
|
97
|
+
}, import("@ensforge/core").GetResolverError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
98
|
+
declare const usePredictResolverAddress: <Mapped = `0x${string}`>(input: UseEnsAtomParameters<import("@ensforge/core").CreateResolverParameters, `0x${string}`, import("@ensforge/core").WriteError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").WriteError>;
|
|
99
|
+
declare const usePredictResolverAddressSuspense: <Mapped = `0x${string}`>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").CreateResolverParameters, `0x${string}`, import("@ensforge/core").WriteError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
100
|
+
declare const useResolve: <Mapped = {
|
|
101
101
|
readonly data: `0x${string}`;
|
|
102
102
|
readonly resolverAddress: `0x${string}`;
|
|
103
|
-
} | null>(input:
|
|
103
|
+
} | null>(input: UseEnsAtomParameters<import("@ensforge/core").ResolveParameters, {
|
|
104
104
|
readonly data: `0x${string}`;
|
|
105
105
|
readonly resolverAddress: `0x${string}`;
|
|
106
|
-
} | null,
|
|
107
|
-
declare const useResolveSuspense: <
|
|
106
|
+
} | null, import("@ensforge/core").ResolveError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").ResolveError>;
|
|
107
|
+
declare const useResolveSuspense: <Mapped = {
|
|
108
108
|
readonly data: `0x${string}`;
|
|
109
109
|
readonly resolverAddress: `0x${string}`;
|
|
110
|
-
} | null>(input:
|
|
110
|
+
} | null>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").ResolveParameters, {
|
|
111
111
|
readonly data: `0x${string}`;
|
|
112
112
|
readonly resolverAddress: `0x${string}`;
|
|
113
|
-
} | null,
|
|
114
|
-
declare const useResolveBatch: <
|
|
115
|
-
declare const useResolveBatchSuspense: <
|
|
116
|
-
declare const useResolveWithResolver: <
|
|
113
|
+
} | null, import("@ensforge/core").ResolveError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
114
|
+
declare const useResolveBatch: <Mapped = import("@ensforge/core").ResolveBatchResult>(input: UseEnsAtomParameters<import("@ensforge/core").ResolveBatchParameters, import("@ensforge/core").ResolveBatchResult, import("@ensforge/core").ResolveError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").ResolveError>;
|
|
115
|
+
declare const useResolveBatchSuspense: <Mapped = import("@ensforge/core").ResolveBatchResult>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").ResolveBatchParameters, import("@ensforge/core").ResolveBatchResult, import("@ensforge/core").ResolveError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
116
|
+
declare const useResolveWithResolver: <Mapped = {
|
|
117
117
|
readonly data: `0x${string}`;
|
|
118
118
|
readonly resolverAddress: `0x${string}`;
|
|
119
|
-
}>(input:
|
|
119
|
+
}>(input: UseEnsAtomParameters<import("@ensforge/core").ResolveWithResolverParameters, {
|
|
120
120
|
readonly data: `0x${string}`;
|
|
121
121
|
readonly resolverAddress: `0x${string}`;
|
|
122
|
-
},
|
|
123
|
-
declare const useResolveWithResolverSuspense: <
|
|
122
|
+
}, import("@ensforge/core").ResolveError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").ResolveError>;
|
|
123
|
+
declare const useResolveWithResolverSuspense: <Mapped = {
|
|
124
124
|
readonly data: `0x${string}`;
|
|
125
125
|
readonly resolverAddress: `0x${string}`;
|
|
126
|
-
}>(input:
|
|
126
|
+
}>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").ResolveWithResolverParameters, {
|
|
127
127
|
readonly data: `0x${string}`;
|
|
128
128
|
readonly resolverAddress: `0x${string}`;
|
|
129
|
-
},
|
|
129
|
+
}, import("@ensforge/core").ResolveError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
130
130
|
declare const useCreateResolver: (options?: EnsMutationOptions<import("@ensforge/core").CreateResolverParameters, import("@ensforge/core").CreateResolverResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").CreateResolverParameters, import("@ensforge/core").CreateResolverResult, import("@ensforge/core").WriteError>;
|
|
131
131
|
declare const useGetOrCreateResolver: (options?: EnsMutationOptions<import("@ensforge/core").GetOrCreateResolverParameters, import("@ensforge/core").GetOrCreateResolverResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").GetOrCreateResolverParameters, import("@ensforge/core").GetOrCreateResolverResult, import("@ensforge/core").WriteError>;
|
|
132
132
|
declare const useSetResolver: (options?: EnsMutationOptions<import("@ensforge/core").SetResolverParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").SetResolverParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolution.d.ts","names":[],"sources":["../../src/hooks/resolution.ts"],"mappings":";;;;;;;cAoBa,WAAQ;;;;;;;;;;;UAA8B;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"resolution.d.ts","names":[],"sources":["../../src/hooks/resolution.ts"],"mappings":";;;;;;;cAoBa,WAAQ;;;;;;;;;;;UAA8B;;;;;;;;;;;4BAAA,eAAA,YAAA,cAAA,iCAAA;cACtC,mBAAgB;;;;;;;;;;;UAAsC;;;;;;;;;;;4BAAA,eAAA,YAAA,sBAAA;cACtD,cAAW,kCAAA,mBAAA,OAAA,8CAAA,gDAAA,4CAAA,kBAAA,YAAA,cAAA,iCAAA;cACX,sBAAmB,kCAAA,mBAAA,OAAA,sDAAA,gDAAA,4CAAA,kBAAA,YAAA,sBAAA;cACnB,qBAAkB;;;;;;;;;;UAAwC;;;;;;;;;;4BAAA,kBAAA,YAAA,cAAA,iCAAA;cAC1D,6BAA0B;;;;;;;;;;UAAgD;;;;;;;;;;4BAAA,kBAAA,YAAA,sBAAA;cAC1E,4BAAyB,wBAAA,OAAA,8CAAA,kEAAA,YAAA,YAAA,cAAA,iCAAA;cACzB,oCAAiC,wBAAA,OAAA,sDAAA,kEAAA,YAAA,YAAA,sBAAA;cACjC,aAAU;;;iBAA6B;;;mCAAA,cAAA,YAAA,cAAA,iCAAA;cACvC,qBAAkB;;;iBAAqC;;;mCAAA,cAAA,YAAA,sBAAA;cACvD,kBAAe,kCAAA,oBAAA,OAAA,8CAAA,iDAAA,6CAAA,cAAA,YAAA,cAAA,iCAAA;cACf,0BAAuB,kCAAA,oBAAA,OAAA,sDAAA,iDAAA,6CAAA,cAAA,YAAA,sBAAA;cACvB,yBAAsB;;;UAAyC;;;4BAAA,cAAA,YAAA,cAAA,iCAAA;cAC/D,iCAA8B;;;UAAiD;;;4BAAA,cAAA,YAAA,sBAAA;cAE/E,oBAAiB,UAAjB,4CAAiB,mDAAA,+CAAA,gBAAA,2CAAA,mDAAA,+CAAA;cACjB,yBAAsB,UAAtB,4CAAsB,wDAAA,oDAAA,gBAAA,2CAAA,wDAAA,oDAAA;cACtB,iBAAc,UAAd,4CAAc,gDAAA,8CAAA,gBAAA,2CAAA,gDAAA,8CAAA;cACd,2BAAwB,UAAxB,4CAAwB,0DAAA,wDAAA,gBAAA,2CAAA,0DAAA,wDAAA;cACxB,qBAAkB,UAAlB,4CAAkB,oDAAA,gDAAA,gBAAA,2CAAA,oDAAA,gDAAA"}
|
package/dist/hooks/reverse.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
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/reverse.d.ts
|
|
8
|
-
declare const usePrimaryName: <
|
|
8
|
+
declare const usePrimaryName: <Mapped = {
|
|
9
9
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
10
10
|
readonly match: true;
|
|
11
|
-
} | null>(input:
|
|
11
|
+
} | null>(input: UseEnsAtomParameters<import("@ensforge/core").GetPrimaryNameParameters, {
|
|
12
12
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
13
13
|
readonly match: true;
|
|
14
|
-
} | null,
|
|
15
|
-
declare const usePrimaryNameSuspense: <
|
|
14
|
+
} | null, import("@ensforge/core").GetPrimaryNameError, Mapped>) => EnsAtomResult<Mapped, import("@ensforge/core").GetPrimaryNameError>;
|
|
15
|
+
declare const usePrimaryNameSuspense: <Mapped = {
|
|
16
16
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
17
17
|
readonly match: true;
|
|
18
|
-
} | null>(input:
|
|
18
|
+
} | null>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").GetPrimaryNameParameters, {
|
|
19
19
|
readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
|
|
20
20
|
readonly match: true;
|
|
21
|
-
} | null,
|
|
21
|
+
} | null, import("@ensforge/core").GetPrimaryNameError, Mapped>) => EnsSuspenseAtomResult<Mapped>;
|
|
22
22
|
declare const useClearPrimaryName: (options?: EnsMutationOptions<import("@ensforge/core").ClearPrimaryNameParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").ClearPrimaryNameParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
23
23
|
declare const useSetContractPrimaryName: (options?: EnsMutationOptions<import("@ensforge/core").SetContractPrimaryNameParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").SetContractPrimaryNameParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
24
24
|
declare const useSetPrimaryName: (options?: EnsMutationOptions<import("@ensforge/core").SetPrimaryNameParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>) => EnsMutationResult<import("@ensforge/core").SetPrimaryNameParameters, import("@ensforge/core").CallExecutionResult, import("@ensforge/core").WriteError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reverse.d.ts","names":[],"sources":["../../src/hooks/reverse.ts"],"mappings":";;;;;;;cAaa,iBAAc;;;iBAAoC;;;
|
|
1
|
+
{"version":3,"file":"reverse.d.ts","names":[],"sources":["../../src/hooks/reverse.ts"],"mappings":";;;;;;;cAaa,iBAAc;;;iBAAoC;;;mCAAA,qBAAA,YAAA,cAAA,iCAAA;cAClD,yBAAsB;;;iBAA4C;;;mCAAA,qBAAA,YAAA,sBAAA;cAElE,sBAAmB,UAAnB,4CAAmB,qDAAA,8CAAA,gBAAA,2CAAA,qDAAA,8CAAA;cACnB,4BAAyB,UAAzB,4CAAyB,2DAAA,8CAAA,gBAAA,2CAAA,2DAAA,8CAAA;cACzB,oBAAiB,UAAjB,4CAAiB,mDAAA,8CAAA,gBAAA,2CAAA,mDAAA,8CAAA;cACjB,8BAA2B,UAA3B,4CAA2B,6DAAA,8CAAA,gBAAA,2CAAA,6DAAA,8CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Invalidation } from "../cache/invalidation.js";
|
|
2
2
|
import { Effect } from "effect";
|
|
3
3
|
//#region src/hooks/use-cache.d.ts
|
|
4
|
-
interface
|
|
5
|
-
(invalidation?:
|
|
6
|
-
readonly effect: (invalidation?:
|
|
4
|
+
interface Invalidate {
|
|
5
|
+
(invalidation?: Invalidation, options?: Effect.RunOptions): Promise<void>;
|
|
6
|
+
readonly effect: (invalidation?: Invalidation) => Effect.Effect<void>;
|
|
7
7
|
}
|
|
8
|
-
declare const
|
|
8
|
+
declare const useInvalidate: () => Invalidate;
|
|
9
9
|
//#endregion
|
|
10
|
-
export {
|
|
10
|
+
export { Invalidate, useInvalidate };
|
|
11
11
|
//# sourceMappingURL=use-cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-cache.d.ts","names":[],"sources":["../../src/hooks/use-cache.ts"],"mappings":";;;UAUiB;GACd,eAAe,
|
|
1
|
+
{"version":3,"file":"use-cache.d.ts","names":[],"sources":["../../src/hooks/use-cache.ts"],"mappings":";;;UAUiB;GACd,eAAe,cAAc,UAAU,OAAO,aAAa;WACnD,SAAS,eAAe,iBAAiB,OAAO;;cAG9C,qBAAoB"}
|
package/dist/hooks/use-cache.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { invalidateEffect } from "../cache/invalidation.js";
|
|
4
4
|
import { useEnsforgeContext } from "../provider/context.js";
|
|
5
5
|
import { Effect } from "effect";
|
|
6
6
|
import { RegistryContext } from "@effect/atom-react";
|
|
7
7
|
import { useContext } from "react";
|
|
8
8
|
|
|
9
9
|
//#region src/hooks/use-cache.ts
|
|
10
|
-
const
|
|
10
|
+
const useInvalidate = () => {
|
|
11
11
|
const registry = useContext(RegistryContext);
|
|
12
12
|
const { sdk } = useEnsforgeContext();
|
|
13
|
-
const effect = (invalidation = { all: true }) =>
|
|
13
|
+
const effect = (invalidation = { all: true }) => invalidateEffect(registry, sdk, invalidation);
|
|
14
14
|
const invalidate = (invalidation, options) => Effect.runPromise(effect(invalidation), options);
|
|
15
15
|
return Object.assign(invalidate, { effect });
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
//#endregion
|
|
19
|
-
export {
|
|
19
|
+
export { useInvalidate };
|
|
20
20
|
//# sourceMappingURL=use-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-cache.js","names":[],"sources":["../../src/hooks/use-cache.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext } from \"react\";\n\nimport { RegistryContext } from \"@effect/atom-react\";\nimport { Effect } from \"effect\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"use-cache.js","names":[],"sources":["../../src/hooks/use-cache.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext } from \"react\";\n\nimport { RegistryContext } from \"@effect/atom-react\";\nimport { Effect } from \"effect\";\n\nimport { invalidateEffect, type Invalidation } from \"../cache/invalidation.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\n\nexport interface Invalidate {\n (invalidation?: Invalidation, options?: Effect.RunOptions): Promise<void>;\n readonly effect: (invalidation?: Invalidation) => Effect.Effect<void>;\n}\n\nexport const useInvalidate = (): Invalidate => {\n const registry = useContext(RegistryContext);\n const { sdk } = useEnsforgeContext();\n const effect = (invalidation: Invalidation = { all: true }) =>\n invalidateEffect(registry, sdk, invalidation);\n const invalidate = (invalidation?: Invalidation, options?: Effect.RunOptions) =>\n Effect.runPromise(effect(invalidation), options);\n\n return Object.assign(invalidate, { effect });\n};\n"],"mappings":";;;;;;;;;AAeA,MAAa,sBAAkC;CAC7C,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,EAAE,QAAQ,mBAAmB;CACnC,MAAM,UAAU,eAA6B,EAAE,KAAK,KAAK,MACvD,iBAAiB,UAAU,KAAK,YAAY;CAC9C,MAAM,cAAc,cAA6B,YAC/C,OAAO,WAAW,OAAO,YAAY,GAAG,OAAO;CAEjD,OAAO,OAAO,OAAO,YAAY,EAAE,OAAO,CAAC;AAC7C"}
|
|
@@ -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"}
|