@ensnode/ensnode-react 1.9.0 → 1.10.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 +19 -19
- package/dist/index.cjs +86 -114
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +37 -49
- package/dist/index.d.ts +37 -49
- package/dist/index.js +83 -111
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -16,18 +16,18 @@ Note: `@tanstack/react-query` is a peer dependency but you don't need to interac
|
|
|
16
16
|
|
|
17
17
|
### 1. Setup the Provider
|
|
18
18
|
|
|
19
|
-
Wrap your app with the `
|
|
19
|
+
Wrap your app with the `EnsNodeProvider`:
|
|
20
20
|
|
|
21
21
|
```tsx
|
|
22
|
-
import {
|
|
22
|
+
import { EnsNodeProvider, createEnsNodeProviderOptions } from "@ensnode/ensnode-react";
|
|
23
23
|
|
|
24
|
-
const
|
|
24
|
+
const options = createEnsNodeProviderOptions({ url: "https://api.alpha.ensnode.io" });
|
|
25
25
|
|
|
26
26
|
function App() {
|
|
27
27
|
return (
|
|
28
|
-
<
|
|
28
|
+
<EnsNodeProvider options={options}>
|
|
29
29
|
<YourApp />
|
|
30
|
-
</
|
|
30
|
+
</EnsNodeProvider>
|
|
31
31
|
);
|
|
32
32
|
}
|
|
33
33
|
```
|
|
@@ -124,13 +124,13 @@ function DisplayPrimaryNames() {
|
|
|
124
124
|
|
|
125
125
|
## API Reference
|
|
126
126
|
|
|
127
|
-
###
|
|
127
|
+
### EnsNodeProvider
|
|
128
128
|
|
|
129
|
-
The provider component that supplies ENSNode
|
|
129
|
+
The provider component that supplies ENSNode Provider Options to all child components.
|
|
130
130
|
|
|
131
131
|
```tsx
|
|
132
|
-
interface
|
|
133
|
-
|
|
132
|
+
interface EnsNodeProviderProps {
|
|
133
|
+
options: EnsNodeProviderOptions;
|
|
134
134
|
queryClient?: QueryClient;
|
|
135
135
|
queryClientOptions?: QueryClientOptions;
|
|
136
136
|
}
|
|
@@ -138,16 +138,16 @@ interface ENSNodeProviderProps {
|
|
|
138
138
|
|
|
139
139
|
#### Props
|
|
140
140
|
|
|
141
|
-
- `
|
|
141
|
+
- `options`: ENSNode Provider Options object
|
|
142
142
|
- `queryClient`: Optional TanStack Query client instance (requires manual QueryClientProvider setup)
|
|
143
143
|
- `queryClientOptions`: Optional Custom options for auto-created QueryClient (only used when queryClient is not provided)
|
|
144
144
|
|
|
145
|
-
###
|
|
145
|
+
### createEnsNodeProviderOptions
|
|
146
146
|
|
|
147
|
-
Helper function to create ENSNode
|
|
147
|
+
Helper function to create ENSNode Provider Options with defaults.
|
|
148
148
|
|
|
149
149
|
```tsx
|
|
150
|
-
const
|
|
150
|
+
const options = createEnsNodeProviderOptions({
|
|
151
151
|
url: "https://api.alpha.ensnode.io",
|
|
152
152
|
});
|
|
153
153
|
```
|
|
@@ -230,12 +230,12 @@ const { data, isLoading, error, refetch } = usePrimaryNames({
|
|
|
230
230
|
|
|
231
231
|
### Custom Query Configuration
|
|
232
232
|
|
|
233
|
-
The `
|
|
233
|
+
The `EnsNodeProvider` automatically creates and manages a QueryClient for you. Cache keys include the ENSNode endpoint URL, so different ENSNode endpoints that may have different configurations (ex: mainnet vs sepolia) maintain separate caches. You can customize the QueryClient without importing TanStack Query:
|
|
234
234
|
|
|
235
235
|
```tsx
|
|
236
236
|
// Simple setup - no TanStack Query knowledge needed
|
|
237
|
-
<
|
|
238
|
-
|
|
237
|
+
<EnsNodeProvider
|
|
238
|
+
options={options}
|
|
239
239
|
queryClientOptions={{
|
|
240
240
|
defaultOptions: {
|
|
241
241
|
queries: {
|
|
@@ -247,7 +247,7 @@ The `ENSNodeProvider` automatically creates and manages a QueryClient for you. C
|
|
|
247
247
|
}}
|
|
248
248
|
>
|
|
249
249
|
<App />
|
|
250
|
-
</
|
|
250
|
+
</EnsNodeProvider>
|
|
251
251
|
```
|
|
252
252
|
|
|
253
253
|
### Advanced: Bring Your Own QueryClient
|
|
@@ -268,9 +268,9 @@ const queryClient = new QueryClient({
|
|
|
268
268
|
});
|
|
269
269
|
|
|
270
270
|
<QueryClientProvider client={queryClient}>
|
|
271
|
-
<
|
|
271
|
+
<EnsNodeProvider options={options} queryClient={queryClient}>
|
|
272
272
|
<App />
|
|
273
|
-
</
|
|
273
|
+
</EnsNodeProvider>
|
|
274
274
|
</QueryClientProvider>;
|
|
275
275
|
```
|
|
276
276
|
|
package/dist/index.cjs
CHANGED
|
@@ -21,10 +21,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
23
|
ASSUME_IMMUTABLE_QUERY: () => ASSUME_IMMUTABLE_QUERY,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
createConfigQueryOptions: () => createConfigQueryOptions,
|
|
24
|
+
EnsNodeContext: () => EnsNodeContext,
|
|
25
|
+
EnsNodeProvider: () => EnsNodeProvider,
|
|
26
|
+
createEnsNodeProviderOptions: () => createEnsNodeProviderOptions,
|
|
28
27
|
createIndexingStatusQueryOptions: () => createIndexingStatusQueryOptions,
|
|
29
28
|
createNameTokensQueryOptions: () => createNameTokensQueryOptions,
|
|
30
29
|
createPrimaryNameQueryOptions: () => createPrimaryNameQueryOptions,
|
|
@@ -32,8 +31,7 @@ __export(index_exports, {
|
|
|
32
31
|
createRecordsQueryOptions: () => createRecordsQueryOptions,
|
|
33
32
|
createRegistrarActionsQueryOptions: () => createRegistrarActionsQueryOptions,
|
|
34
33
|
queryKeys: () => queryKeys,
|
|
35
|
-
|
|
36
|
-
useENSNodeSDKConfig: () => useENSNodeSDKConfig,
|
|
34
|
+
useEnsNodeProviderOptions: () => useEnsNodeProviderOptions,
|
|
37
35
|
useIndexingStatus: () => useIndexingStatus,
|
|
38
36
|
useNameTokens: () => useNameTokens,
|
|
39
37
|
usePrimaryName: () => usePrimaryName,
|
|
@@ -47,10 +45,23 @@ module.exports = __toCommonJS(index_exports);
|
|
|
47
45
|
|
|
48
46
|
// src/context.ts
|
|
49
47
|
var import_react = require("react");
|
|
50
|
-
var
|
|
51
|
-
|
|
48
|
+
var EnsNodeContext = (0, import_react.createContext)(void 0);
|
|
49
|
+
EnsNodeContext.displayName = "EnsNodeContext";
|
|
52
50
|
|
|
53
|
-
// src/hooks/
|
|
51
|
+
// src/hooks/useEnsNodeProviderOptions.ts
|
|
52
|
+
var import_react2 = require("react");
|
|
53
|
+
function useEnsNodeProviderOptions(options) {
|
|
54
|
+
const contextOptions = (0, import_react2.useContext)(EnsNodeContext);
|
|
55
|
+
const resolvedOptions = options ?? contextOptions;
|
|
56
|
+
if (!resolvedOptions) {
|
|
57
|
+
throw new Error(
|
|
58
|
+
"useEnsNodeProviderOptions must be used within an EnsNodeProvider or you must pass the options parameter"
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
return resolvedOptions;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// src/hooks/useIndexingStatus.ts
|
|
54
65
|
var import_react_query = require("@tanstack/react-query");
|
|
55
66
|
|
|
56
67
|
// src/utils/query.ts
|
|
@@ -68,7 +79,6 @@ var queryKeys = {
|
|
|
68
79
|
records: (url, args) => [...queryKeys.resolve(url), "records", args],
|
|
69
80
|
primaryName: (url, args) => [...queryKeys.resolve(url), "primary-name", args],
|
|
70
81
|
primaryNames: (url, args) => [...queryKeys.resolve(url), "primary-names", args],
|
|
71
|
-
config: (url) => [...queryKeys.base(url), "config"],
|
|
72
82
|
indexingStatus: (url) => [...queryKeys.base(url), "indexing-status"],
|
|
73
83
|
registrarActions: (url, args) => [...queryKeys.base(url), "registrar-actions", args],
|
|
74
84
|
nameTokens: (url, args) => [...queryKeys.base(url), "name-tokens", args]
|
|
@@ -78,7 +88,7 @@ function createRecordsQueryOptions(config, args) {
|
|
|
78
88
|
enabled: true,
|
|
79
89
|
queryKey: queryKeys.records(config.client.url.href, args),
|
|
80
90
|
queryFn: async () => {
|
|
81
|
-
const client = new import_ensnode_sdk.
|
|
91
|
+
const client = new import_ensnode_sdk.EnsNodeClient(config.client);
|
|
82
92
|
return client.resolveRecords(args.name, args.selection, args);
|
|
83
93
|
}
|
|
84
94
|
};
|
|
@@ -88,7 +98,7 @@ function createPrimaryNameQueryOptions(config, args) {
|
|
|
88
98
|
enabled: true,
|
|
89
99
|
queryKey: queryKeys.primaryName(config.client.url.href, args),
|
|
90
100
|
queryFn: async () => {
|
|
91
|
-
const client = new import_ensnode_sdk.
|
|
101
|
+
const client = new import_ensnode_sdk.EnsNodeClient(config.client);
|
|
92
102
|
return client.resolvePrimaryName(args.address, args.chainId, args);
|
|
93
103
|
}
|
|
94
104
|
};
|
|
@@ -98,27 +108,17 @@ function createPrimaryNamesQueryOptions(config, args) {
|
|
|
98
108
|
enabled: true,
|
|
99
109
|
queryKey: queryKeys.primaryNames(config.client.url.href, args),
|
|
100
110
|
queryFn: async () => {
|
|
101
|
-
const client = new import_ensnode_sdk.
|
|
111
|
+
const client = new import_ensnode_sdk.EnsNodeClient(config.client);
|
|
102
112
|
return client.resolvePrimaryNames(args.address, args);
|
|
103
113
|
}
|
|
104
114
|
};
|
|
105
115
|
}
|
|
106
|
-
function createConfigQueryOptions(config) {
|
|
107
|
-
return {
|
|
108
|
-
enabled: true,
|
|
109
|
-
queryKey: queryKeys.config(config.client.url.href),
|
|
110
|
-
queryFn: async () => {
|
|
111
|
-
const client = new import_ensnode_sdk.ENSNodeClient(config.client);
|
|
112
|
-
return client.config();
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
116
|
function createIndexingStatusQueryOptions(config) {
|
|
117
117
|
return {
|
|
118
118
|
enabled: true,
|
|
119
119
|
queryKey: queryKeys.indexingStatus(config.client.url.href),
|
|
120
120
|
queryFn: async () => {
|
|
121
|
-
const client = new import_ensnode_sdk.
|
|
121
|
+
const client = new import_ensnode_sdk.EnsNodeClient(config.client);
|
|
122
122
|
return client.indexingStatus();
|
|
123
123
|
}
|
|
124
124
|
};
|
|
@@ -128,7 +128,7 @@ function createRegistrarActionsQueryOptions(config, args) {
|
|
|
128
128
|
enabled: true,
|
|
129
129
|
queryKey: queryKeys.registrarActions(config.client.url.href, args),
|
|
130
130
|
queryFn: async () => {
|
|
131
|
-
const client = new import_ensnode_sdk.
|
|
131
|
+
const client = new import_ensnode_sdk.EnsNodeClient(config.client);
|
|
132
132
|
return client.registrarActions(args);
|
|
133
133
|
}
|
|
134
134
|
};
|
|
@@ -138,62 +138,33 @@ function createNameTokensQueryOptions(config, args) {
|
|
|
138
138
|
enabled: true,
|
|
139
139
|
queryKey: queryKeys.nameTokens(config.client.url.href, args),
|
|
140
140
|
queryFn: async () => {
|
|
141
|
-
const client = new import_ensnode_sdk.
|
|
141
|
+
const client = new import_ensnode_sdk.EnsNodeClient(config.client);
|
|
142
142
|
return client.nameTokens(args);
|
|
143
143
|
}
|
|
144
144
|
};
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
// src/hooks/useENSNodeSDKConfig.ts
|
|
148
|
-
var import_react2 = require("react");
|
|
149
|
-
function useENSNodeSDKConfig(config) {
|
|
150
|
-
const contextConfig = (0, import_react2.useContext)(ENSNodeContext);
|
|
151
|
-
const resolvedConfig = config ?? contextConfig;
|
|
152
|
-
if (!resolvedConfig) {
|
|
153
|
-
throw new Error(
|
|
154
|
-
"useENSNodeSDKConfig must be used within an ENSNodeProvider or you must pass a config parameter"
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
return resolvedConfig;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
// src/hooks/useENSNodeConfig.ts
|
|
161
|
-
function useENSNodeConfig(parameters = {}) {
|
|
162
|
-
const { config, query = {} } = parameters;
|
|
163
|
-
const _config = useENSNodeSDKConfig(config);
|
|
164
|
-
const queryOptions = createConfigQueryOptions(_config);
|
|
165
|
-
const options = {
|
|
166
|
-
...queryOptions,
|
|
167
|
-
...ASSUME_IMMUTABLE_QUERY,
|
|
168
|
-
...query,
|
|
169
|
-
enabled: query.enabled ?? queryOptions.enabled
|
|
170
|
-
};
|
|
171
|
-
return (0, import_react_query.useQuery)(options);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
147
|
// src/hooks/useIndexingStatus.ts
|
|
175
|
-
var import_react_query2 = require("@tanstack/react-query");
|
|
176
148
|
function useIndexingStatus(parameters = {}) {
|
|
177
|
-
const {
|
|
178
|
-
const
|
|
179
|
-
const queryOptions = createIndexingStatusQueryOptions(
|
|
180
|
-
|
|
149
|
+
const { options, query = {} } = parameters;
|
|
150
|
+
const providerOptions = useEnsNodeProviderOptions(options);
|
|
151
|
+
const queryOptions = createIndexingStatusQueryOptions(providerOptions);
|
|
152
|
+
return (0, import_react_query.useQuery)({
|
|
181
153
|
...queryOptions,
|
|
182
154
|
refetchInterval: 10 * 1e3,
|
|
183
155
|
// 10 seconds - indexing status changes frequently
|
|
184
156
|
...query,
|
|
185
157
|
enabled: query.enabled ?? queryOptions.enabled
|
|
186
|
-
};
|
|
187
|
-
return (0, import_react_query2.useQuery)(options);
|
|
158
|
+
});
|
|
188
159
|
}
|
|
189
160
|
|
|
190
161
|
// src/hooks/useNameTokens.ts
|
|
191
|
-
var
|
|
162
|
+
var import_react_query2 = require("@tanstack/react-query");
|
|
192
163
|
function useNameTokens(parameters) {
|
|
193
|
-
const {
|
|
194
|
-
const
|
|
195
|
-
const queryOptions = createNameTokensQueryOptions(
|
|
196
|
-
return (0,
|
|
164
|
+
const { options, query = {}, ...request } = parameters;
|
|
165
|
+
const providerOptions = useEnsNodeProviderOptions(options);
|
|
166
|
+
const queryOptions = createNameTokensQueryOptions(providerOptions, request);
|
|
167
|
+
return (0, import_react_query2.useQuery)({
|
|
197
168
|
...queryOptions,
|
|
198
169
|
refetchInterval: false,
|
|
199
170
|
// no refetching - assume data is immutable until a full page refresh
|
|
@@ -203,72 +174,66 @@ function useNameTokens(parameters) {
|
|
|
203
174
|
}
|
|
204
175
|
|
|
205
176
|
// src/hooks/usePrimaryName.ts
|
|
206
|
-
var
|
|
177
|
+
var import_react_query3 = require("@tanstack/react-query");
|
|
207
178
|
function usePrimaryName(parameters) {
|
|
208
|
-
const {
|
|
209
|
-
const
|
|
179
|
+
const { options, query = {}, address, ...args } = parameters;
|
|
180
|
+
const providerOptions = useEnsNodeProviderOptions(options);
|
|
210
181
|
const canEnable = address !== null;
|
|
211
|
-
const queryOptions = canEnable ? createPrimaryNameQueryOptions(
|
|
212
|
-
|
|
182
|
+
const queryOptions = canEnable ? createPrimaryNameQueryOptions(providerOptions, { ...args, address }) : { enabled: false, queryKey: ["disabled"] };
|
|
183
|
+
return (0, import_react_query3.useQuery)({
|
|
213
184
|
...queryOptions,
|
|
214
185
|
...query,
|
|
215
186
|
enabled: canEnable && (query.enabled ?? queryOptions.enabled)
|
|
216
|
-
};
|
|
217
|
-
return (0, import_react_query4.useQuery)(options);
|
|
187
|
+
});
|
|
218
188
|
}
|
|
219
189
|
|
|
220
190
|
// src/hooks/usePrimaryNames.ts
|
|
221
|
-
var
|
|
191
|
+
var import_react_query4 = require("@tanstack/react-query");
|
|
222
192
|
function usePrimaryNames(parameters) {
|
|
223
|
-
const {
|
|
224
|
-
const
|
|
193
|
+
const { options, query = {}, address, ...args } = parameters;
|
|
194
|
+
const providerOptions = useEnsNodeProviderOptions(options);
|
|
225
195
|
const canEnable = address !== null;
|
|
226
|
-
const queryOptions = canEnable ? createPrimaryNamesQueryOptions(
|
|
227
|
-
|
|
196
|
+
const queryOptions = canEnable ? createPrimaryNamesQueryOptions(providerOptions, { ...args, address }) : { enabled: false, queryKey: ["disabled"] };
|
|
197
|
+
return (0, import_react_query4.useQuery)({
|
|
228
198
|
...queryOptions,
|
|
229
199
|
...query,
|
|
230
200
|
enabled: canEnable && (query.enabled ?? queryOptions.enabled)
|
|
231
|
-
};
|
|
232
|
-
return (0, import_react_query5.useQuery)(options);
|
|
201
|
+
});
|
|
233
202
|
}
|
|
234
203
|
|
|
235
204
|
// src/hooks/useRecords.ts
|
|
236
|
-
var
|
|
205
|
+
var import_react_query5 = require("@tanstack/react-query");
|
|
237
206
|
function useRecords(parameters) {
|
|
238
|
-
const {
|
|
239
|
-
const _config =
|
|
207
|
+
const { options, query = {}, name, ...args } = parameters;
|
|
208
|
+
const _config = useEnsNodeProviderOptions(options);
|
|
240
209
|
const canEnable = name !== null;
|
|
241
210
|
const queryOptions = canEnable ? createRecordsQueryOptions(_config, { ...args, name }) : { enabled: false, queryKey: ["disabled"] };
|
|
242
|
-
|
|
211
|
+
return (0, import_react_query5.useQuery)({
|
|
243
212
|
...queryOptions,
|
|
244
213
|
...query,
|
|
245
214
|
enabled: canEnable && (query.enabled ?? queryOptions.enabled)
|
|
246
|
-
};
|
|
247
|
-
return (0, import_react_query6.useQuery)(options);
|
|
215
|
+
});
|
|
248
216
|
}
|
|
249
217
|
|
|
250
218
|
// src/hooks/useRegistrarActions.ts
|
|
251
|
-
var
|
|
219
|
+
var import_react_query6 = require("@tanstack/react-query");
|
|
252
220
|
function useRegistrarActions(parameters = {}) {
|
|
253
|
-
const {
|
|
254
|
-
const
|
|
255
|
-
const queryOptions = createRegistrarActionsQueryOptions(
|
|
256
|
-
|
|
221
|
+
const { options, query = {}, ...request } = parameters;
|
|
222
|
+
const providerOptions = useEnsNodeProviderOptions(options);
|
|
223
|
+
const queryOptions = createRegistrarActionsQueryOptions(providerOptions, request);
|
|
224
|
+
return (0, import_react_query6.useQuery)({
|
|
257
225
|
...queryOptions,
|
|
258
226
|
refetchInterval: 10 * 1e3,
|
|
259
227
|
// 10 seconds - latest registrar actions change frequently
|
|
260
228
|
...query,
|
|
261
229
|
enabled: query.enabled ?? queryOptions.enabled
|
|
262
|
-
};
|
|
263
|
-
return (0, import_react_query7.useQuery)(options);
|
|
230
|
+
});
|
|
264
231
|
}
|
|
265
232
|
|
|
266
233
|
// src/hooks/useResolvedIdentity.ts
|
|
267
234
|
var import_ensnode_sdk2 = require("@ensnode/ensnode-sdk");
|
|
268
235
|
function useResolvedIdentity(parameters) {
|
|
269
|
-
const { identity, accelerate, query: _query = {} } = parameters;
|
|
270
|
-
const { data } = useENSNodeConfig();
|
|
271
|
-
const namespace = data?.ensIndexerPublicConfig.namespace;
|
|
236
|
+
const { identity, namespace, accelerate, query: _query = {} } = parameters;
|
|
272
237
|
const {
|
|
273
238
|
data: primaryNameData,
|
|
274
239
|
status,
|
|
@@ -281,7 +246,15 @@ function useResolvedIdentity(parameters) {
|
|
|
281
246
|
namespace ?? import_ensnode_sdk2.ENSNamespaceIds.Mainnet
|
|
282
247
|
),
|
|
283
248
|
accelerate,
|
|
249
|
+
// NOTE: Overriding `gcTime` to prevent unbounded memory growth
|
|
250
|
+
// in long-running sessions with many identities.
|
|
284
251
|
query: {
|
|
252
|
+
...ASSUME_IMMUTABLE_QUERY,
|
|
253
|
+
// identity changes very rarely
|
|
254
|
+
gcTime: 60 * 60 * 1e3,
|
|
255
|
+
// 1 hour
|
|
256
|
+
refetchInterval: false,
|
|
257
|
+
// not covered by ASSUME_IMMUTABLE_QUERY
|
|
285
258
|
..._query,
|
|
286
259
|
enabled: (_query.enabled ?? true) && namespace !== void 0
|
|
287
260
|
}
|
|
@@ -317,13 +290,13 @@ function useResolvedIdentity(parameters) {
|
|
|
317
290
|
}
|
|
318
291
|
|
|
319
292
|
// src/hooks/useSwrQuery.ts
|
|
320
|
-
var
|
|
293
|
+
var import_react_query7 = require("@tanstack/react-query");
|
|
321
294
|
var import_react3 = require("react");
|
|
322
295
|
function useSwrQuery(options, queryClient) {
|
|
323
|
-
const queryClientFromContext = (0,
|
|
296
|
+
const queryClientFromContext = (0, import_react_query7.useQueryClient)();
|
|
324
297
|
const derivedQueryClient = queryClient ?? queryClientFromContext;
|
|
325
298
|
const cachedSuccessfulResult = derivedQueryClient.getQueryData(options.queryKey);
|
|
326
|
-
const queryResult = (0,
|
|
299
|
+
const queryResult = (0, import_react_query7.useQuery)(
|
|
327
300
|
{
|
|
328
301
|
...options,
|
|
329
302
|
// cached result can never be stale
|
|
@@ -354,21 +327,20 @@ function useSwrQuery(options, queryClient) {
|
|
|
354
327
|
}
|
|
355
328
|
|
|
356
329
|
// src/provider.tsx
|
|
357
|
-
var
|
|
330
|
+
var import_react_query8 = require("@tanstack/react-query");
|
|
358
331
|
var import_react4 = require("react");
|
|
359
332
|
var import_ensnode_sdk3 = require("@ensnode/ensnode-sdk");
|
|
360
|
-
function
|
|
333
|
+
function EnsNodeInternalProvider({
|
|
361
334
|
children,
|
|
362
|
-
|
|
335
|
+
options
|
|
363
336
|
}) {
|
|
364
|
-
|
|
365
|
-
return (0, import_react4.createElement)(ENSNodeContext.Provider, { value: memoizedConfig }, children);
|
|
337
|
+
return (0, import_react4.createElement)(EnsNodeContext.Provider, { value: options }, children);
|
|
366
338
|
}
|
|
367
|
-
function
|
|
368
|
-
const { children,
|
|
339
|
+
function EnsNodeProvider(parameters) {
|
|
340
|
+
const { children, options, queryClient, queryClientOptions } = parameters;
|
|
369
341
|
let hasExistingQueryClient = false;
|
|
370
342
|
try {
|
|
371
|
-
hasExistingQueryClient = Boolean((0,
|
|
343
|
+
hasExistingQueryClient = Boolean((0, import_react_query8.useQueryClient)());
|
|
372
344
|
} catch {
|
|
373
345
|
hasExistingQueryClient = false;
|
|
374
346
|
}
|
|
@@ -378,13 +350,13 @@ function ENSNodeProvider(parameters) {
|
|
|
378
350
|
"When providing a custom queryClient, you must wrap your app with QueryClientProvider. Either remove the queryClient prop to use auto-managed setup, or wrap with QueryClientProvider."
|
|
379
351
|
);
|
|
380
352
|
}
|
|
381
|
-
return (0, import_react4.createElement)(
|
|
353
|
+
return (0, import_react4.createElement)(EnsNodeInternalProvider, { options, children });
|
|
382
354
|
}
|
|
383
355
|
if (hasExistingQueryClient) {
|
|
384
|
-
return (0, import_react4.createElement)(
|
|
356
|
+
return (0, import_react4.createElement)(EnsNodeInternalProvider, { options, children });
|
|
385
357
|
}
|
|
386
358
|
const defaultQueryClient = (0, import_react4.useMemo)(
|
|
387
|
-
() => new
|
|
359
|
+
() => new import_react_query8.QueryClient({
|
|
388
360
|
defaultOptions: {
|
|
389
361
|
queries: {
|
|
390
362
|
retry: 3,
|
|
@@ -401,16 +373,16 @@ function ENSNodeProvider(parameters) {
|
|
|
401
373
|
[queryClientOptions]
|
|
402
374
|
);
|
|
403
375
|
return (0, import_react4.createElement)(
|
|
404
|
-
|
|
376
|
+
import_react_query8.QueryClientProvider,
|
|
405
377
|
{ client: defaultQueryClient },
|
|
406
|
-
(0, import_react4.createElement)(
|
|
378
|
+
(0, import_react4.createElement)(EnsNodeInternalProvider, { options, children })
|
|
407
379
|
);
|
|
408
380
|
}
|
|
409
|
-
function
|
|
410
|
-
const url = options?.url ? new URL(options.url) : import_ensnode_sdk3.
|
|
381
|
+
function createEnsNodeProviderOptions(options) {
|
|
382
|
+
const url = options?.url ? new URL(options.url) : import_ensnode_sdk3.EnsNodeClient.defaultOptions().url;
|
|
411
383
|
return {
|
|
412
384
|
client: {
|
|
413
|
-
...import_ensnode_sdk3.
|
|
385
|
+
...import_ensnode_sdk3.EnsNodeClient.defaultOptions(),
|
|
414
386
|
url
|
|
415
387
|
}
|
|
416
388
|
};
|