@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.
Files changed (111) hide show
  1. package/README.md +10 -10
  2. package/dist/atoms/batch.d.ts +6 -6
  3. package/dist/atoms/batch.d.ts.map +1 -1
  4. package/dist/atoms/capabilities.d.ts +20 -20
  5. package/dist/atoms/capabilities.d.ts.map +1 -1
  6. package/dist/atoms/dns.d.ts +7 -7
  7. package/dist/atoms/dns.d.ts.map +1 -1
  8. package/dist/atoms/events.d.ts +29 -29
  9. package/dist/atoms/events.d.ts.map +1 -1
  10. package/dist/atoms/generic.d.ts +5 -4
  11. package/dist/atoms/generic.d.ts.map +1 -1
  12. package/dist/atoms/generic.js.map +1 -1
  13. package/dist/atoms/migration.d.ts +5 -5
  14. package/dist/atoms/migration.d.ts.map +1 -1
  15. package/dist/atoms/name.d.ts +23 -23
  16. package/dist/atoms/name.d.ts.map +1 -1
  17. package/dist/atoms/ownership.d.ts +2 -2
  18. package/dist/atoms/ownership.d.ts.map +1 -1
  19. package/dist/atoms/query.d.ts +6 -11
  20. package/dist/atoms/query.d.ts.map +1 -1
  21. package/dist/atoms/query.js +14 -11
  22. package/dist/atoms/query.js.map +1 -1
  23. package/dist/atoms/records.d.ts +12 -12
  24. package/dist/atoms/records.d.ts.map +1 -1
  25. package/dist/atoms/registration.d.ts +8 -8
  26. package/dist/atoms/registration.d.ts.map +1 -1
  27. package/dist/atoms/resolution.d.ts +8 -8
  28. package/dist/atoms/resolution.d.ts.map +1 -1
  29. package/dist/atoms/reverse.d.ts +2 -2
  30. package/dist/atoms/reverse.d.ts.map +1 -1
  31. package/dist/atoms/stream.d.ts +2 -2
  32. package/dist/atoms/stream.d.ts.map +1 -1
  33. package/dist/atoms/stream.js +6 -4
  34. package/dist/atoms/stream.js.map +1 -1
  35. package/dist/atoms/wrapping.d.ts +3 -3
  36. package/dist/atoms/wrapping.d.ts.map +1 -1
  37. package/dist/atoms.d.ts +3 -2
  38. package/dist/atoms.js +3 -2
  39. package/dist/cache/invalidation.d.ts +5 -5
  40. package/dist/cache/invalidation.d.ts.map +1 -1
  41. package/dist/cache/invalidation.js +3 -3
  42. package/dist/cache/invalidation.js.map +1 -1
  43. package/dist/cache/prefetch.d.ts +5 -4
  44. package/dist/cache/prefetch.d.ts.map +1 -1
  45. package/dist/cache/prefetch.js +3 -3
  46. package/dist/cache/prefetch.js.map +1 -1
  47. package/dist/cache/registry.d.ts +3 -3
  48. package/dist/cache/registry.d.ts.map +1 -1
  49. package/dist/cache/registry.js +2 -2
  50. package/dist/cache/registry.js.map +1 -1
  51. package/dist/cache.d.ts +4 -4
  52. package/dist/cache.js +4 -4
  53. package/dist/hooks/batch.d.ts +13 -13
  54. package/dist/hooks/batch.d.ts.map +1 -1
  55. package/dist/hooks/capabilities.d.ts +107 -107
  56. package/dist/hooks/capabilities.d.ts.map +1 -1
  57. package/dist/hooks/dns.d.ts +39 -39
  58. package/dist/hooks/dns.d.ts.map +1 -1
  59. package/dist/hooks/events.d.ts +98 -98
  60. package/dist/hooks/events.d.ts.map +1 -1
  61. package/dist/hooks/generic.d.ts +5 -5
  62. package/dist/hooks/generic.d.ts.map +1 -1
  63. package/dist/hooks/generic.js.map +1 -1
  64. package/dist/hooks/index.d.ts +4 -4
  65. package/dist/hooks/migration.d.ts +27 -27
  66. package/dist/hooks/migration.d.ts.map +1 -1
  67. package/dist/hooks/name.d.ts +73 -73
  68. package/dist/hooks/name.d.ts.map +1 -1
  69. package/dist/hooks/ownership.d.ts +5 -5
  70. package/dist/hooks/ownership.d.ts.map +1 -1
  71. package/dist/hooks/records.d.ts +69 -69
  72. package/dist/hooks/records.d.ts.map +1 -1
  73. package/dist/hooks/registration.d.ts +45 -45
  74. package/dist/hooks/registration.d.ts.map +1 -1
  75. package/dist/hooks/resolution.d.ts +33 -33
  76. package/dist/hooks/resolution.d.ts.map +1 -1
  77. package/dist/hooks/reverse.d.ts +9 -9
  78. package/dist/hooks/reverse.d.ts.map +1 -1
  79. package/dist/hooks/use-cache.d.ts +6 -6
  80. package/dist/hooks/use-cache.d.ts.map +1 -1
  81. package/dist/hooks/use-cache.js +4 -4
  82. package/dist/hooks/use-cache.js.map +1 -1
  83. package/dist/hooks/use-mutation.js +16 -31
  84. package/dist/hooks/use-mutation.js.map +1 -1
  85. package/dist/hooks/use-query.d.ts +6 -6
  86. package/dist/hooks/use-query.d.ts.map +1 -1
  87. package/dist/hooks/use-query.js +24 -52
  88. package/dist/hooks/use-query.js.map +1 -1
  89. package/dist/hooks/use-suspense-query.d.ts +9 -8
  90. package/dist/hooks/use-suspense-query.d.ts.map +1 -1
  91. package/dist/hooks/use-suspense-query.js +5 -5
  92. package/dist/hooks/use-suspense-query.js.map +1 -1
  93. package/dist/hooks/wrapping.d.ts +7 -7
  94. package/dist/hooks/wrapping.d.ts.map +1 -1
  95. package/dist/index.d.ts +11 -11
  96. package/dist/index.js +7 -7
  97. package/dist/mutation/options.d.ts +9 -7
  98. package/dist/mutation/options.d.ts.map +1 -1
  99. package/dist/mutation/result.d.ts +8 -10
  100. package/dist/mutation/result.d.ts.map +1 -1
  101. package/dist/provider/context.d.ts +4 -2
  102. package/dist/provider/context.d.ts.map +1 -1
  103. package/dist/provider/context.js.map +1 -1
  104. package/dist/query/options.d.ts +27 -24
  105. package/dist/query/options.d.ts.map +1 -1
  106. package/dist/query/options.js +26 -12
  107. package/dist/query/options.js.map +1 -1
  108. package/dist/query/result.d.ts +7 -13
  109. package/dist/query/result.d.ts.map +1 -1
  110. package/dist/query/result.js.map +1 -1
  111. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"registration.d.ts","names":[],"sources":["../../src/hooks/registration.ts"],"mappings":";;;;;;;cAuBa,sBAAmB;;;;;;;;;;;;;;;;;;;;;;;UAAyC;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,eAAA,mCAAA;cAC5D,8BAA2B;;;;;;;;;;;;;;;;;;;;;;;UAAiD;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,uBAAA;cAC5E,4BAAyB;;;;;;;;;;;;;;;;;;;;;;;UAA+C;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,eAAA,mCAAA;cACxE,oCAAiC;;;;;;;;;;;;;;;;;;;;;;;UAE7C;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,uBAAA;cACY,sBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,eAAA,mCAAA;cAC5D,8BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,uBAAA;cAC5E,uBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,eAAA,mCAAA;cAC9D,+BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,uBAAA;cAC9E,kBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,eAAA,mCAAA;cACpD,0BAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA,cAAA,uBAAA;cACpE,6BAA0B;;;;;;;;;;;;;;;UAA6C;;;;;;;;;;;;;;;GAAA,cAAA,eAAA,mCAAA;cACvE,qCAAkC;;;;;;;;;;;;;;;UAE9C;;;;;;;;;;;;;;;GAAA,cAAA,uBAAA;cACY,4BAAyB;;;;;UAAgD;;;;;GAAA,cAAA,eAAA,mCAAA;cACzE,oCAAiC;;;;;UAE7C;;;;;GAAA,cAAA,uBAAA;cAEY,yBAAsB,UAAtB,4CAAsB,wDAAA,8CAAA,gBAAA,2CAAA,wDAAA,8CAAA;cACtB,2BAAwB,UAAxB,4CAAwB,0DAAA,8CAAA,gBAAA,2CAAA,0DAAA,8CAAA;cACxB,gBAAa,UAAb,4CAAa,+CAAA,8CAAA,gBAAA,2CAAA,+CAAA,8CAAA;cACb,0BAAuB,UAAvB,4CAAuB,yDAAA,8CAAA,gBAAA,2CAAA,yDAAA,8CAAA;cACvB,kBAAe,UAAf,4CAAe,iDAAA,6CAAA,gBAAA,2CAAA,iDAAA,6CAAA;cACf,mBAAgB,UAAhB,4CAAgB,kDAAA,8CAAA,gBAAA,2CAAA,kDAAA,8CAAA;cAChB,eAAY,UAAZ,4CAAY,8CAAA,0CAAA,gBAAA,2CAAA,8CAAA,0CAAA;cACZ,gBAAa,UAAb,4CAAa,+CAAA,2CAAA,gBAAA,2CAAA,+CAAA,2CAAA"}
1
+ {"version":3,"file":"registration.d.ts","names":[],"sources":["../../src/hooks/registration.ts"],"mappings":";;;;;;;cAuBa,sBAAmB;;;;;;;;;;;;;;;;;;;;;;;UAAyC;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,cAAA,iCAAA;cAC5D,8BAA2B;;;;;;;;;;;;;;;;;;;;;;;UAAiD;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,sBAAA;cAC5E,4BAAyB;;;;;;;;;;;;;;;;;;;;;;;UAA+C;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,cAAA,iCAAA;cACxE,oCAAiC;;;;;;;;;;;;;;;;;;;;;;;UAE7C;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,sBAAA;cACY,sBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,cAAA,iCAAA;cAC5D,8BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,sBAAA;cAC5E,uBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,cAAA,iCAAA;cAC9D,+BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,sBAAA;cAC9E,kBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,cAAA,iCAAA;cACpD,0BAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,sBAAA;cACpE,6BAA0B;;;;;;;;;;;;;;;UAA6C;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,cAAA,iCAAA;cACvE,qCAAkC;;;;;;;;;;;;;;;UAE9C;;;;;;;;;;;;;;;4BAAA,0BAAA,YAAA,sBAAA;cACY,4BAAyB;;;;;UAAgD;;;;;4BAAA,0BAAA,YAAA,cAAA,iCAAA;cACzE,oCAAiC;;;;;UAE7C;;;;;4BAAA,0BAAA,YAAA,sBAAA;cAEY,yBAAsB,UAAtB,4CAAsB,wDAAA,8CAAA,gBAAA,2CAAA,wDAAA,8CAAA;cACtB,2BAAwB,UAAxB,4CAAwB,0DAAA,8CAAA,gBAAA,2CAAA,0DAAA,8CAAA;cACxB,gBAAa,UAAb,4CAAa,+CAAA,8CAAA,gBAAA,2CAAA,+CAAA,8CAAA;cACb,0BAAuB,UAAvB,4CAAuB,yDAAA,8CAAA,gBAAA,2CAAA,yDAAA,8CAAA;cACvB,kBAAe,UAAf,4CAAe,iDAAA,6CAAA,gBAAA,2CAAA,iDAAA,6CAAA;cACf,mBAAgB,UAAhB,4CAAgB,kDAAA,8CAAA,gBAAA,2CAAA,kDAAA,8CAAA;cAChB,eAAY,UAAZ,4CAAY,8CAAA,0CAAA,gBAAA,2CAAA,8CAAA,0CAAA;cACZ,gBAAa,UAAb,4CAAa,+CAAA,2CAAA,gBAAA,2CAAA,+CAAA,2CAAA"}
@@ -1,11 +1,11 @@
1
- import { UseEnsQueryParameters } from "../query/options.js";
2
- import { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters } from "./use-suspense-query.js";
3
- import { EnsQueryResult } from "../query/result.js";
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: <Selected = {
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: UseEnsQueryParameters<import("@ensforge/core").GetAliasParameters, {
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
- }, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").GetAliasError>;
31
- declare const useAliasSuspense: <Selected = {
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: UseEnsSuspenseQueryParameters<import("@ensforge/core").GetAliasParameters, {
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
- }, Selected>) => EnsSuspenseQueryResult<Selected>;
54
- declare const useResolver: <Selected = import("@ensforge/core").GetResolverResult>(input: UseEnsQueryParameters<import("@ensforge/core").GetResolverParameters, import("@ensforge/core").GetResolverResult, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").GetResolverError>;
55
- declare const useResolverSuspense: <Selected = import("@ensforge/core").GetResolverResult>(input: UseEnsSuspenseQueryParameters<import("@ensforge/core").GetResolverParameters, import("@ensforge/core").GetResolverResult, Selected>) => EnsSuspenseQueryResult<Selected>;
56
- declare const useResolverVersion: <Selected = {
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: UseEnsQueryParameters<import("@ensforge/core").GetResolverVersionParameters, {
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
- }, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").GetResolverError>;
77
- declare const useResolverVersionSuspense: <Selected = {
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: UseEnsSuspenseQueryParameters<import("@ensforge/core").GetResolverVersionParameters, {
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
- }, Selected>) => EnsSuspenseQueryResult<Selected>;
98
- declare const usePredictResolverAddress: <Selected = `0x${string}`>(input: UseEnsQueryParameters<import("@ensforge/core").CreateResolverParameters, `0x${string}`, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").WriteError>;
99
- declare const usePredictResolverAddressSuspense: <Selected = `0x${string}`>(input: UseEnsSuspenseQueryParameters<import("@ensforge/core").CreateResolverParameters, `0x${string}`, Selected>) => EnsSuspenseQueryResult<Selected>;
100
- declare const useResolve: <Selected = {
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: UseEnsQueryParameters<import("@ensforge/core").ResolveParameters, {
103
+ } | null>(input: UseEnsAtomParameters<import("@ensforge/core").ResolveParameters, {
104
104
  readonly data: `0x${string}`;
105
105
  readonly resolverAddress: `0x${string}`;
106
- } | null, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").ResolveError>;
107
- declare const useResolveSuspense: <Selected = {
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: UseEnsSuspenseQueryParameters<import("@ensforge/core").ResolveParameters, {
110
+ } | null>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").ResolveParameters, {
111
111
  readonly data: `0x${string}`;
112
112
  readonly resolverAddress: `0x${string}`;
113
- } | null, Selected>) => EnsSuspenseQueryResult<Selected>;
114
- declare const useResolveBatch: <Selected = import("@ensforge/core").ResolveBatchResult>(input: UseEnsQueryParameters<import("@ensforge/core").ResolveBatchParameters, import("@ensforge/core").ResolveBatchResult, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").ResolveError>;
115
- declare const useResolveBatchSuspense: <Selected = import("@ensforge/core").ResolveBatchResult>(input: UseEnsSuspenseQueryParameters<import("@ensforge/core").ResolveBatchParameters, import("@ensforge/core").ResolveBatchResult, Selected>) => EnsSuspenseQueryResult<Selected>;
116
- declare const useResolveWithResolver: <Selected = {
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: UseEnsQueryParameters<import("@ensforge/core").ResolveWithResolverParameters, {
119
+ }>(input: UseEnsAtomParameters<import("@ensforge/core").ResolveWithResolverParameters, {
120
120
  readonly data: `0x${string}`;
121
121
  readonly resolverAddress: `0x${string}`;
122
- }, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").ResolveError>;
123
- declare const useResolveWithResolverSuspense: <Selected = {
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: UseEnsSuspenseQueryParameters<import("@ensforge/core").ResolveWithResolverParameters, {
126
+ }>(input: UseEnsSuspenseAtomParameters<import("@ensforge/core").ResolveWithResolverParameters, {
127
127
  readonly data: `0x${string}`;
128
128
  readonly resolverAddress: `0x${string}`;
129
- }, Selected>) => EnsSuspenseQueryResult<Selected>;
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;;;;;;;;;;;GAAA,cAAA,eAAA,mCAAA;cACtC,mBAAgB;;;;;;;;;;;UAAsC;;;;;;;;;;;GAAA,cAAA,uBAAA;cACtD,cAAW,oCAAA,mBAAA,OAAA,+CAAA,gDAAA,mBAAA,cAAA,eAAA,mCAAA;cACX,sBAAmB,oCAAA,mBAAA,OAAA,uDAAA,gDAAA,mBAAA,cAAA,uBAAA;cACnB,qBAAkB;;;;;;;;;;UAAwC;;;;;;;;;;GAAA,cAAA,eAAA,mCAAA;cAC1D,6BAA0B;;;;;;;;;;UAAgD;;;;;;;;;;GAAA,cAAA,uBAAA;cAC1E,4BAAyB,0BAAA,OAAA,+CAAA,yCAAA,cAAA,eAAA,mCAAA;cACzB,oCAAiC,0BAAA,OAAA,uDAAA,yCAAA,cAAA,uBAAA;cACjC,aAAU;;;iBAA6B;;;UAAA,cAAA,eAAA,mCAAA;cACvC,qBAAkB;;;iBAAqC;;;UAAA,cAAA,uBAAA;cACvD,kBAAe,oCAAA,oBAAA,OAAA,+CAAA,iDAAA,oBAAA,cAAA,eAAA,mCAAA;cACf,0BAAuB,oCAAA,oBAAA,OAAA,uDAAA,iDAAA,oBAAA,cAAA,uBAAA;cACvB,yBAAsB;;;UAAyC;;;GAAA,cAAA,eAAA,mCAAA;cAC/D,iCAA8B;;;UAAiD;;;GAAA,cAAA,uBAAA;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"}
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"}
@@ -1,24 +1,24 @@
1
- import { UseEnsQueryParameters } from "../query/options.js";
2
- import { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters } from "./use-suspense-query.js";
3
- import { EnsQueryResult } from "../query/result.js";
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: <Selected = {
8
+ declare const usePrimaryName: <Mapped = {
9
9
  readonly name: string & import("effect/Brand").Brand<"NormalizedName">;
10
10
  readonly match: true;
11
- } | null>(input: UseEnsQueryParameters<import("@ensforge/core").GetPrimaryNameParameters, {
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, Selected>) => EnsQueryResult<Selected, import("@ensforge/core").GetPrimaryNameError>;
15
- declare const usePrimaryNameSuspense: <Selected = {
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: UseEnsSuspenseQueryParameters<import("@ensforge/core").GetPrimaryNameParameters, {
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, Selected>) => EnsSuspenseQueryResult<Selected>;
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;;;UAAA,cAAA,eAAA,mCAAA;cAClD,yBAAsB;;;iBAA4C;;;UAAA,cAAA,uBAAA;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
+ {"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 { EnsforgeInvalidation } from "../cache/invalidation.js";
1
+ import { Invalidation } from "../cache/invalidation.js";
2
2
  import { Effect } from "effect";
3
3
  //#region src/hooks/use-cache.d.ts
4
- interface InvalidateEnsforge {
5
- (invalidation?: EnsforgeInvalidation, options?: Effect.RunOptions): Promise<void>;
6
- readonly effect: (invalidation?: EnsforgeInvalidation) => Effect.Effect<void>;
4
+ interface Invalidate {
5
+ (invalidation?: Invalidation, options?: Effect.RunOptions): Promise<void>;
6
+ readonly effect: (invalidation?: Invalidation) => Effect.Effect<void>;
7
7
  }
8
- declare const useInvalidateEnsforge: () => InvalidateEnsforge;
8
+ declare const useInvalidate: () => Invalidate;
9
9
  //#endregion
10
- export { InvalidateEnsforge, useInvalidateEnsforge };
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,sBAAsB,UAAU,OAAO,aAAa;WAC3D,SAAS,eAAe,yBAAyB,OAAO;;cAGtD,6BAA4B"}
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"}
@@ -1,20 +1,20 @@
1
1
  "use client";
2
2
 
3
- import { invalidateEnsforgeEffect } from "../cache/invalidation.js";
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 useInvalidateEnsforge = () => {
10
+ const useInvalidate = () => {
11
11
  const registry = useContext(RegistryContext);
12
12
  const { sdk } = useEnsforgeContext();
13
- const effect = (invalidation = { all: true }) => invalidateEnsforgeEffect(registry, sdk, invalidation);
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 { useInvalidateEnsforge };
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 { invalidateEnsforgeEffect, type EnsforgeInvalidation } from \"../cache/invalidation.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\n\nexport interface InvalidateEnsforge {\n (invalidation?: EnsforgeInvalidation, options?: Effect.RunOptions): Promise<void>;\n readonly effect: (invalidation?: EnsforgeInvalidation) => Effect.Effect<void>;\n}\n\nexport const useInvalidateEnsforge = (): InvalidateEnsforge => {\n const registry = useContext(RegistryContext);\n const { sdk } = useEnsforgeContext();\n const effect = (invalidation: EnsforgeInvalidation = { all: true }) =>\n invalidateEnsforgeEffect(registry, sdk, invalidation);\n const invalidate = (invalidation?: EnsforgeInvalidation, options?: Effect.RunOptions) =>\n Effect.runPromise(effect(invalidation), options);\n\n return Object.assign(invalidate, { effect });\n};\n"],"mappings":";;;;;;;;;AAeA,MAAa,8BAAkD;CAC7D,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,EAAE,QAAQ,mBAAmB;CACnC,MAAM,UAAU,eAAqC,EAAE,KAAK,KAAK,MAC/D,yBAAyB,UAAU,KAAK,YAAY;CACtD,MAAM,cAAc,cAAqC,YACvD,OAAO,WAAW,OAAO,YAAY,GAAG,OAAO;CAEjD,OAAO,OAAO,OAAO,YAAY,EAAE,OAAO,CAAC;AAC7C"}
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 options.retry === void 0 || options.retry === false ? effect : effect.pipe(Effect.retry({ times: options.retry }));
25
+ return retry === false ? effect : effect.pipe(Effect.retry(retry));
25
26
  };
26
- const runCallbacks = (exit, nextParameters, local) => {
27
- if (Exit.isSuccess(exit)) {
28
- options.onSuccess?.(exit.value, nextParameters);
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
- runCallbacks(exit, nextParameters, void 0);
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
- isError,
61
- isIdle,
62
- isPending,
63
- isSuccess,
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 { EnsMutationCallbacks, 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 { 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\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 options.retry === undefined || options.retry === false\n ? effect\n : effect.pipe(Effect.retry({ times: options.retry }));\n };\n\n const runCallbacks = (\n exit: Exit.Exit<Success, Failure>,\n nextParameters: Parameters,\n local: EnsMutationCallbacks<Parameters, Success, Failure> | undefined,\n ) => {\n if (Exit.isSuccess(exit)) {\n options.onSuccess?.(exit.value, nextParameters);\n local?.onSuccess?.(exit.value, nextParameters);\n options.onSettled?.(exit.value, null, nextParameters);\n local?.onSettled?.(exit.value, null, nextParameters);\n return;\n }\n\n const error = errorFromCause(exit.cause);\n options.onError?.(error, nextParameters);\n local?.onError?.(error, nextParameters);\n options.onSettled?.(undefined, error, nextParameters);\n local?.onSettled?.(undefined, error, nextParameters);\n };\n\n const mutate = (\n nextParameters: Parameters,\n callbacks?: EnsMutationCallbacks<Parameters, Success, Failure>,\n ) => {\n void Effect.runPromiseExit(mutateEffect(nextParameters)).then((exit) =>\n runCallbacks(exit, nextParameters, callbacks),\n );\n };\n\n const mutateAsync = async (nextParameters: Parameters): Promise<Success> => {\n const exit = await Effect.runPromiseExit(mutateEffect(nextParameters));\n runCallbacks(exit, nextParameters, undefined);\n if (Exit.isSuccess(exit)) return exit.value;\n throw Cause.squash(exit.cause);\n };\n\n const cause = Option.getOrNull(AsyncResult.cause(result));\n const data = Option.getOrUndefined(AsyncResult.value(result));\n const isIdle = AsyncResult.isInitial(result) && !result.waiting;\n const isPending = result.waiting;\n const isError = AsyncResult.isFailure(result);\n const isSuccess = AsyncResult.isSuccess(result) && !result.waiting;\n\n return {\n cause,\n data,\n error: cause === null ? null : errorFromCause(cause),\n interrupt: () => registry.set(atom, Atom.Interrupt),\n isError,\n isIdle,\n isPending,\n isSuccess,\n mutate,\n mutateAsync,\n mutateEffect,\n parameters,\n reset: () => {\n setParameters(undefined);\n registry.set(atom, Atom.Reset);\n },\n result,\n status: isPending ? \"pending\" : isError ? \"error\" : isSuccess ? \"success\" : \"idle\",\n };\n };\n"],"mappings":";;;;;;;;;;AAcA,MAAa,oBACoB,aAE7B,UAA4D,CAAC,MACT;CACpD,MAAM,EAAE,QAAQ,mBAAmB;CACnC,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;CAEhC,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,QAAQ,UAAU,UAAa,QAAQ,UAAU,QACpD,SACA,OAAO,KAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,MAAM,CAAC,CAAC;CACxD;CAEA,MAAM,gBACJ,MACA,gBACA,UACG;EACH,IAAI,KAAK,UAAU,IAAI,GAAG;GACxB,QAAQ,YAAY,KAAK,OAAO,cAAc;GAC9C,OAAO,YAAY,KAAK,OAAO,cAAc;GAC7C,QAAQ,YAAY,KAAK,OAAO,MAAM,cAAc;GACpD,OAAO,YAAY,KAAK,OAAO,MAAM,cAAc;GACnD;EACF;EAEA,MAAM,QAAQ,eAAe,KAAK,KAAK;EACvC,QAAQ,UAAU,OAAO,cAAc;EACvC,OAAO,UAAU,OAAO,cAAc;EACtC,QAAQ,YAAY,QAAW,OAAO,cAAc;EACpD,OAAO,YAAY,QAAW,OAAO,cAAc;CACrD;CAEA,MAAM,UACJ,gBACA,cACG;EACH,AAAK,OAAO,eAAe,aAAa,cAAc,CAAC,CAAC,CAAC,MAAM,SAC7D,aAAa,MAAM,gBAAgB,SAAS,CAC9C;CACF;CAEA,MAAM,cAAc,OAAO,mBAAiD;EAC1E,MAAM,OAAO,MAAM,OAAO,eAAe,aAAa,cAAc,CAAC;EACrE,aAAa,MAAM,gBAAgB,MAAS;EAC5C,IAAI,KAAK,UAAU,IAAI,GAAG,OAAO,KAAK;EACtC,MAAM,MAAM,OAAO,KAAK,KAAK;CAC/B;CAEA,MAAM,QAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC;CACxD,MAAM,OAAO,OAAO,eAAe,YAAY,MAAM,MAAM,CAAC;CAC5D,MAAM,SAAS,YAAY,UAAU,MAAM,KAAK,CAAC,OAAO;CACxD,MAAM,YAAY,OAAO;CACzB,MAAM,UAAU,YAAY,UAAU,MAAM;CAC5C,MAAM,YAAY,YAAY,UAAU,MAAM,KAAK,CAAC,OAAO;CAE3D,OAAO;EACL;EACA;EACA,OAAO,UAAU,OAAO,OAAO,eAAe,KAAK;EACnD,iBAAiB,SAAS,IAAI,MAAM,KAAK,SAAS;EAClD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aAAa;GACX,cAAc,MAAS;GACvB,SAAS,IAAI,MAAM,KAAK,KAAK;EAC/B;EACA;EACA,QAAQ,YAAY,YAAY,UAAU,UAAU,YAAY,YAAY;CAC9E;AACF"}
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 { EnsQueryAtomFactory } from "../atoms/query.js";
2
- import { UseEnsQueryParameters } from "../query/options.js";
3
- import { EnsQueryResult } from "../query/result.js";
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: EnsQueryAtomFactory<Parameters, Success, Failure>) => <Selected = Success>(input: UseEnsQueryParameters<Parameters, Success, Selected>) => EnsQueryResult<Selected, Failure>;
7
- declare const prefetchQueryAtom: <Success, Failure>(registry: AtomRegistry.AtomRegistry, atom: Atom.Atom<AsyncResult.AsyncResult<Success, Failure>>, signal?: AbortSignal) => Promise<Success>;
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, prefetchQueryAtom };
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":";;;;;cAiGa,gBACV,2BAA2B,SAAS,SACnC,SAAS,oBAAoB,YAAY,SAAS,cAEnD,WAAW,SACV,OAAO,sBAAsB,YAAY,SAAS,cACjD,eAAe,UAAU;cAGjB,oBAAqB,SAAS,SACzC,UAAU,aAAa,cACvB,MAAM,KAAK,KAAK,YAAY,YAAY,SAAS,WACjD,SAAS,gBACR,QAAQ"}
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"}
@@ -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, useEffect, useRef } from "react";
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 splitQueryParameters = (input) => {
14
- const { query, ...parameters } = input;
15
- return [parameters, query];
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 [parameters, query] = splitQueryParameters(input);
21
- const options = resolveEnsQueryOptions(defaults.queries, query);
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 = query?.select === void 0 ? rawResult : AsyncResult.map(rawResult, query.select);
26
- const staleCheckedAtom = useRef(void 0);
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 query?.select === void 0 ? effect : effect.pipe(Effect.map(query.select));
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
- fetchStatus: result.waiting ? "fetching" : "idle",
63
- isError,
64
- isFetching: result.waiting,
65
- isLoading: isPending && result.waiting,
66
- isPending,
67
- isRefetching: !isPending && result.waiting,
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 prefetchQueryAtom = (registry, atom, signal) => Effect.runPromise(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true }), { signal });
49
+ const prefetchAtom = (registry, atom, signal) => Effect.runPromise(AtomRegistry.getResult(registry, atom, { suspendOnWaiting: true }), { signal });
78
50
 
79
51
  //#endregion
80
- export { makeQueryHook, prefetchQueryAtom, useQueryAtom };
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, useEffect, useRef } from \"react\";\n\nimport { useAtomValue, RegistryContext } from \"@effect/atom-react\";\nimport { Effect, Option } from \"effect\";\nimport { AsyncResult, Atom, AtomRegistry } from \"effect/unstable/reactivity\";\n\nimport type { EnsQueryAtomFactory } from \"../atoms/query.js\";\nimport { useEnsforgeContext } from \"../provider/context.js\";\nimport {\n resolveEnsQueryOptions,\n type EnsQueryOptions,\n type UseEnsQueryParameters,\n} from \"../query/options.js\";\nimport { errorFromCause, resultUpdatedAt, type EnsQueryResult } from \"../query/result.js\";\n\nconst disabledAtom = Atom.make(AsyncResult.initial<unknown, unknown>());\n\nconst splitQueryParameters = <Parameters extends object, Success, Selected>(\n input: UseEnsQueryParameters<Parameters, Success, Selected>,\n): readonly [Parameters, EnsQueryOptions<Success, Selected> | undefined] => {\n const { query, ...parameters } = input;\n return [parameters as Parameters, query];\n};\n\nexport const useQueryAtom = <Parameters extends object, Success, Failure, Selected = Success>(\n factory: EnsQueryAtomFactory<Parameters, Success, Failure>,\n input: UseEnsQueryParameters<Parameters, Success, Selected>,\n): EnsQueryResult<Selected, Failure> => {\n const { defaults, sdk } = useEnsforgeContext();\n const registry = useContext(RegistryContext);\n const [parameters, query] = splitQueryParameters(input);\n const options = resolveEnsQueryOptions(defaults.queries, query);\n const enabled = query?.enabled ?? true;\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<Selected, Failure> =\n query?.select === undefined\n ? (rawResult as unknown as AsyncResult.AsyncResult<Selected, Failure>)\n : AsyncResult.map(rawResult, query.select);\n const staleCheckedAtom = useRef<Atom.Atom<unknown> | undefined>(undefined);\n\n useEffect(() => {\n if (staleCheckedAtom.current === atom) return;\n staleCheckedAtom.current = atom;\n if (!enabled || !AsyncResult.isSuccess(rawResult)) return;\n if (Date.now() - rawResult.timestamp >= options.staleTime) registry.refresh(atom);\n }, [atom, enabled, options.staleTime, rawResult, registry]);\n\n useEffect(() => {\n if (!enabled || options.refetchInterval === false) return;\n const interval = globalThis.setInterval(() => registry.refresh(atom), options.refetchInterval);\n return () => globalThis.clearInterval(interval);\n }, [atom, enabled, options.refetchInterval, registry]);\n\n const refetchEffect = (): Effect.Effect<Selected, 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 query?.select === undefined\n ? (effect as unknown as Effect.Effect<Selected, Failure>)\n : effect.pipe(Effect.map(query.select));\n };\n\n const cause = Option.getOrNull(AsyncResult.cause(result));\n const data = Option.getOrUndefined(AsyncResult.value(result));\n const isPending = AsyncResult.isInitial(result);\n const isError = AsyncResult.isFailure(result);\n const isSuccess = AsyncResult.isSuccess(result);\n\n return {\n cause,\n data,\n error: cause === null ? null : errorFromCause(cause),\n fetchStatus: result.waiting ? \"fetching\" : \"idle\",\n isError,\n isFetching: result.waiting,\n isLoading: isPending && result.waiting,\n isPending,\n isRefetching: !isPending && result.waiting,\n isSuccess,\n refetch: () => Effect.runPromise(refetchEffect()),\n refetchEffect,\n result,\n status: isPending ? \"pending\" : isError ? \"error\" : \"success\",\n updatedAt: resultUpdatedAt(result),\n };\n};\n\nexport const makeQueryHook =\n <Parameters extends object, Success, Failure>(\n factory: EnsQueryAtomFactory<Parameters, Success, Failure>,\n ) =>\n <Selected = Success>(\n input: UseEnsQueryParameters<Parameters, Success, Selected>,\n ): EnsQueryResult<Selected, Failure> =>\n useQueryAtom(factory, input);\n\nexport const prefetchQueryAtom = <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;AAEtE,MAAM,wBACJ,UAC0E;CAC1E,MAAM,EAAE,OAAO,GAAG,eAAe;CACjC,OAAO,CAAC,YAA0B,KAAK;AACzC;AAEA,MAAa,gBACX,SACA,UACsC;CACtC,MAAM,EAAE,UAAU,QAAQ,mBAAmB;CAC7C,MAAM,WAAW,WAAW,eAAe;CAC3C,MAAM,CAAC,YAAY,SAAS,qBAAqB,KAAK;CACtD,MAAM,UAAU,uBAAuB,SAAS,SAAS,KAAK;CAC9D,MAAM,UAAU,OAAO,WAAW;CAClC,MAAM,OAAO,QAAQ,KAAK,YAAY,OAAO;CAI7C,MAAM,YAAY,aAHE,UAAU,OAAO,YAGI;CACzC,MAAM,SACJ,OAAO,WAAW,SACb,YACD,YAAY,IAAI,WAAW,MAAM,MAAM;CAC7C,MAAM,mBAAmB,OAAuC,MAAS;CAEzE,gBAAgB;EACd,IAAI,iBAAiB,YAAY,MAAM;EACvC,iBAAiB,UAAU;EAC3B,IAAI,CAAC,WAAW,CAAC,YAAY,UAAU,SAAS,GAAG;EACnD,IAAI,KAAK,IAAI,IAAI,UAAU,aAAa,QAAQ,WAAW,SAAS,QAAQ,IAAI;CAClF,GAAG;EAAC;EAAM;EAAS,QAAQ;EAAW;EAAW;CAAQ,CAAC;CAE1D,gBAAgB;EACd,IAAI,CAAC,WAAW,QAAQ,oBAAoB,OAAO;EACnD,MAAM,WAAW,WAAW,kBAAkB,SAAS,QAAQ,IAAI,GAAG,QAAQ,eAAe;EAC7F,aAAa,WAAW,cAAc,QAAQ;CAChD,GAAG;EAAC;EAAM;EAAS,QAAQ;EAAiB;CAAQ,CAAC;CAErD,MAAM,sBAAwD;EAC5D,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,OAAO,WAAW,SACpB,SACD,OAAO,KAAK,OAAO,IAAI,MAAM,MAAM,CAAC;CAC1C;CAEA,MAAM,QAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC;CACxD,MAAM,OAAO,OAAO,eAAe,YAAY,MAAM,MAAM,CAAC;CAC5D,MAAM,YAAY,YAAY,UAAU,MAAM;CAC9C,MAAM,UAAU,YAAY,UAAU,MAAM;CAC5C,MAAM,YAAY,YAAY,UAAU,MAAM;CAE9C,OAAO;EACL;EACA;EACA,OAAO,UAAU,OAAO,OAAO,eAAe,KAAK;EACnD,aAAa,OAAO,UAAU,aAAa;EAC3C;EACA,YAAY,OAAO;EACnB,WAAW,aAAa,OAAO;EAC/B;EACA,cAAc,CAAC,aAAa,OAAO;EACnC;EACA,eAAe,OAAO,WAAW,cAAc,CAAC;EAChD;EACA;EACA,QAAQ,YAAY,YAAY,UAAU,UAAU;EACpD,WAAW,gBAAgB,MAAM;CACnC;AACF;AAEA,MAAa,iBAET,aAGA,UAEA,aAAa,SAAS,KAAK;AAE/B,MAAa,qBACX,UACA,MACA,WAEA,OAAO,WAAW,aAAa,UAAU,UAAU,MAAM,EAAE,kBAAkB,KAAK,CAAC,GAAG,EACpF,OACF,CAAC"}
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 { EnsQueryAtomFactory } from "../atoms/query.js";
2
- import { EnsQueryOptions } from "../query/options.js";
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 UseEnsSuspenseQueryParameters<Parameters, Success, Selected = Success> = Parameters & {
5
- readonly query?: Omit<EnsQueryOptions<Success, Selected>, "enabled">;
4
+ type UseEnsSuspenseAtomParameters<Parameters, Success, Failure, Mapped = Success> = Parameters & {
5
+ readonly atom?: EnsAtomOptions<Failure>;
6
+ readonly map?: (value: Success) => Mapped;
6
7
  };
7
- interface EnsSuspenseQueryResult<Success> {
8
+ interface EnsSuspenseAtomResult<Success> {
8
9
  readonly data: Success;
9
- readonly isFetching: boolean;
10
+ readonly isWaiting: boolean;
10
11
  readonly updatedAt: number;
11
12
  }
12
- declare const makeSuspenseQueryHook: <Parameters extends object, Success, Failure>(factory: EnsQueryAtomFactory<Parameters, Success, Failure>) => <Selected = Success>(input: UseEnsSuspenseQueryParameters<Parameters, Success, Selected>) => EnsSuspenseQueryResult<Selected>;
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 { EnsSuspenseQueryResult, UseEnsSuspenseQueryParameters, makeSuspenseQueryHook };
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,8BAA8B,YAAY,SAAS,WAAW,WAAW;WAC1E,QAAQ,KAAK,gBAAgB,SAAS;;UAGhC,uBAAuB;WAC7B,MAAM;WACN;WACA;;cAGE,wBACV,2BAA2B,SAAS,SACnC,SAAS,oBAAoB,YAAY,SAAS,cAEnD,WAAW,SACV,OAAO,8BAA8B,YAAY,SAAS,cACzD,uBAAuB"}
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"}