@wagmi/solid 0.0.0-alpha → 0.0.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/LICENSE +21 -0
- package/README.md +14 -0
- package/actions/package.json +5 -0
- package/chains/package.json +5 -0
- package/connectors/package.json +5 -0
- package/dist/esm/context.js +28 -0
- package/dist/esm/context.js.map +1 -0
- package/dist/esm/errors/base.js +20 -0
- package/dist/esm/errors/base.js.map +1 -0
- package/dist/esm/errors/context.js +15 -0
- package/dist/esm/errors/context.js.map +1 -0
- package/dist/esm/exports/actions.js +7 -0
- package/dist/esm/exports/actions.js.map +1 -0
- package/dist/esm/exports/chains.js +7 -0
- package/dist/esm/exports/chains.js.map +1 -0
- package/dist/esm/exports/connectors.js +7 -0
- package/dist/esm/exports/connectors.js.map +1 -0
- package/dist/esm/exports/index.js +47 -0
- package/dist/esm/exports/index.js.map +1 -0
- package/dist/esm/exports/query.js +8 -0
- package/dist/esm/exports/query.js.map +1 -0
- package/dist/esm/hydrate.js +19 -0
- package/dist/esm/hydrate.js.map +1 -0
- package/dist/esm/primitives/useBalance.js +16 -0
- package/dist/esm/primitives/useBalance.js.map +1 -0
- package/dist/esm/primitives/useBlockNumber.js +36 -0
- package/dist/esm/primitives/useBlockNumber.js.map +1 -0
- package/dist/esm/primitives/useChainId.js +20 -0
- package/dist/esm/primitives/useChainId.js.map +1 -0
- package/dist/esm/primitives/useChains.js +19 -0
- package/dist/esm/primitives/useChains.js.map +1 -0
- package/dist/esm/primitives/useClient.js +22 -0
- package/dist/esm/primitives/useClient.js.map +1 -0
- package/dist/esm/primitives/useConfig.js +12 -0
- package/dist/esm/primitives/useConfig.js.map +1 -0
- package/dist/esm/primitives/useConnect.js +20 -0
- package/dist/esm/primitives/useConnect.js.map +1 -0
- package/dist/esm/primitives/useConnection.js +20 -0
- package/dist/esm/primitives/useConnection.js.map +1 -0
- package/dist/esm/primitives/useConnectionEffect.js +36 -0
- package/dist/esm/primitives/useConnectionEffect.js.map +1 -0
- package/dist/esm/primitives/useConnections.js +20 -0
- package/dist/esm/primitives/useConnections.js.map +1 -0
- package/dist/esm/primitives/useConnectorClient.js +31 -0
- package/dist/esm/primitives/useConnectorClient.js.map +1 -0
- package/dist/esm/primitives/useConnectors.js +20 -0
- package/dist/esm/primitives/useConnectors.js.map +1 -0
- package/dist/esm/primitives/useDisconnect.js +10 -0
- package/dist/esm/primitives/useDisconnect.js.map +1 -0
- package/dist/esm/primitives/useReconnect.js +10 -0
- package/dist/esm/primitives/useReconnect.js.map +1 -0
- package/dist/esm/primitives/useSwitchChain.js +10 -0
- package/dist/esm/primitives/useSwitchChain.js.map +1 -0
- package/dist/esm/primitives/useSwitchConnection.js +10 -0
- package/dist/esm/primitives/useSwitchConnection.js.map +1 -0
- package/dist/esm/primitives/useWatchBlockNumber.js +23 -0
- package/dist/esm/primitives/useWatchBlockNumber.js.map +1 -0
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
- package/dist/esm/utils/getVersion.js +3 -0
- package/dist/esm/utils/getVersion.js.map +1 -0
- package/dist/esm/utils/query.js +29 -0
- package/dist/esm/utils/query.js.map +1 -0
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/context.d.ts +10 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/errors/base.d.ts +10 -0
- package/dist/types/errors/base.d.ts.map +1 -0
- package/dist/types/errors/context.d.ts +9 -0
- package/dist/types/errors/context.d.ts.map +1 -0
- package/dist/types/exports/actions.d.ts +2 -0
- package/dist/types/exports/actions.d.ts.map +1 -0
- package/dist/types/exports/chains.d.ts +2 -0
- package/dist/types/exports/chains.d.ts.map +1 -0
- package/dist/types/exports/connectors.d.ts +2 -0
- package/dist/types/exports/connectors.d.ts.map +1 -0
- package/dist/types/exports/index.d.ts +24 -0
- package/dist/types/exports/index.d.ts.map +1 -0
- package/dist/types/exports/query.d.ts +3 -0
- package/dist/types/exports/query.d.ts.map +1 -0
- package/dist/types/hydrate.d.ts +9 -0
- package/dist/types/hydrate.d.ts.map +1 -0
- package/dist/types/primitives/useBalance.d.ts +13 -0
- package/dist/types/primitives/useBalance.d.ts.map +1 -0
- package/dist/types/primitives/useBlockNumber.d.ts +16 -0
- package/dist/types/primitives/useBlockNumber.d.ts.map +1 -0
- package/dist/types/primitives/useChainId.d.ts +12 -0
- package/dist/types/primitives/useChainId.d.ts.map +1 -0
- package/dist/types/primitives/useChains.d.ts +12 -0
- package/dist/types/primitives/useChains.d.ts.map +1 -0
- package/dist/types/primitives/useClient.d.ts +12 -0
- package/dist/types/primitives/useClient.d.ts.map +1 -0
- package/dist/types/primitives/useConfig.d.ts +11 -0
- package/dist/types/primitives/useConfig.d.ts.map +1 -0
- package/dist/types/primitives/useConnect.d.ts +13 -0
- package/dist/types/primitives/useConnect.d.ts.map +1 -0
- package/dist/types/primitives/useConnection.d.ts +12 -0
- package/dist/types/primitives/useConnection.d.ts.map +1 -0
- package/dist/types/primitives/useConnectionEffect.d.ts +17 -0
- package/dist/types/primitives/useConnectionEffect.d.ts.map +1 -0
- package/dist/types/primitives/useConnections.d.ts +12 -0
- package/dist/types/primitives/useConnections.d.ts.map +1 -0
- package/dist/types/primitives/useConnectorClient.d.ts +13 -0
- package/dist/types/primitives/useConnectorClient.d.ts.map +1 -0
- package/dist/types/primitives/useConnectors.d.ts +12 -0
- package/dist/types/primitives/useConnectors.d.ts.map +1 -0
- package/dist/types/primitives/useDisconnect.d.ts +13 -0
- package/dist/types/primitives/useDisconnect.d.ts.map +1 -0
- package/dist/types/primitives/useReconnect.d.ts +13 -0
- package/dist/types/primitives/useReconnect.d.ts.map +1 -0
- package/dist/types/primitives/useSwitchChain.d.ts +13 -0
- package/dist/types/primitives/useSwitchChain.d.ts.map +1 -0
- package/dist/types/primitives/useSwitchConnection.d.ts +13 -0
- package/dist/types/primitives/useSwitchConnection.d.ts.map +1 -0
- package/dist/types/primitives/useWatchBlockNumber.d.ts +11 -0
- package/dist/types/primitives/useWatchBlockNumber.d.ts.map +1 -0
- package/dist/types/utils/getVersion.d.ts +2 -0
- package/dist/types/utils/getVersion.d.ts.map +1 -0
- package/dist/types/utils/query.d.ts +28 -0
- package/dist/types/utils/query.d.ts.map +1 -0
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +95 -7
- package/query/package.json +5 -0
- package/src/context.ts +43 -0
- package/src/errors/base.ts +14 -0
- package/src/errors/context.ts +13 -0
- package/src/exports/actions.ts +7 -0
- package/src/exports/chains.ts +7 -0
- package/src/exports/connectors.ts +7 -0
- package/src/exports/index.ts +134 -0
- package/src/exports/query.ts +19 -0
- package/src/hydrate.ts +27 -0
- package/src/primitives/useBalance.ts +46 -0
- package/src/primitives/useBlockNumber.ts +99 -0
- package/src/primitives/useChainId.ts +42 -0
- package/src/primitives/useChains.ts +42 -0
- package/src/primitives/useClient.ts +67 -0
- package/src/primitives/useConfig.ts +27 -0
- package/src/primitives/useConnect.ts +63 -0
- package/src/primitives/useConnection.ts +44 -0
- package/src/primitives/useConnectionEffect.ts +66 -0
- package/src/primitives/useConnections.ts +34 -0
- package/src/primitives/useConnectorClient.ts +86 -0
- package/src/primitives/useConnectors.ts +47 -0
- package/src/primitives/useDisconnect.ts +44 -0
- package/src/primitives/useReconnect.ts +44 -0
- package/src/primitives/useSwitchChain.ts +58 -0
- package/src/primitives/useSwitchConnection.ts +60 -0
- package/src/primitives/useWatchBlockNumber.ts +65 -0
- package/src/utils/getVersion.ts +3 -0
- package/src/utils/query.ts +171 -0
- package/src/version.ts +1 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type Config,
|
|
3
|
+
type ResolvedRegister,
|
|
4
|
+
type WatchBlockNumberParameters,
|
|
5
|
+
watchBlockNumber,
|
|
6
|
+
} from '@wagmi/core'
|
|
7
|
+
import type {
|
|
8
|
+
ConfigParameter,
|
|
9
|
+
EnabledParameter,
|
|
10
|
+
UnionCompute,
|
|
11
|
+
UnionExactPartial,
|
|
12
|
+
} from '@wagmi/core/internal'
|
|
13
|
+
import { type Accessor, createEffect, onCleanup } from 'solid-js'
|
|
14
|
+
import { useChainId } from './useChainId.js'
|
|
15
|
+
import { useConfig } from './useConfig.js'
|
|
16
|
+
|
|
17
|
+
/** https://wagmi.sh/solid/api/hooks/useWatchBlockNumber */
|
|
18
|
+
export function useWatchBlockNumber<
|
|
19
|
+
config extends Config = ResolvedRegister['config'],
|
|
20
|
+
chainId extends
|
|
21
|
+
config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
22
|
+
>(
|
|
23
|
+
parameters: useWatchBlockNumber.Parameters<config, chainId> = () =>
|
|
24
|
+
({}) as any,
|
|
25
|
+
): useWatchBlockNumber.ReturnType {
|
|
26
|
+
const config = useConfig(parameters)
|
|
27
|
+
const configChainId = useChainId(() => ({ config: config() }))
|
|
28
|
+
createEffect(() => {
|
|
29
|
+
const {
|
|
30
|
+
config: _,
|
|
31
|
+
chainId = configChainId(),
|
|
32
|
+
enabled = true,
|
|
33
|
+
onBlockNumber,
|
|
34
|
+
...rest
|
|
35
|
+
} = parameters()
|
|
36
|
+
if (!enabled) return
|
|
37
|
+
if (!onBlockNumber) return
|
|
38
|
+
const unwatch = watchBlockNumber(config(), {
|
|
39
|
+
...(rest as any),
|
|
40
|
+
chainId,
|
|
41
|
+
onBlockNumber,
|
|
42
|
+
})
|
|
43
|
+
onCleanup(() => unwatch())
|
|
44
|
+
})
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export namespace useWatchBlockNumber {
|
|
48
|
+
export type Parameters<
|
|
49
|
+
config extends Config = Config,
|
|
50
|
+
chainId extends
|
|
51
|
+
config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
52
|
+
> = Accessor<SolidParameters<config, chainId>>
|
|
53
|
+
|
|
54
|
+
export type ReturnType = void
|
|
55
|
+
|
|
56
|
+
export type SolidParameters<
|
|
57
|
+
config extends Config = Config,
|
|
58
|
+
chainId extends
|
|
59
|
+
config['chains'][number]['id'] = config['chains'][number]['id'],
|
|
60
|
+
> = UnionCompute<
|
|
61
|
+
UnionExactPartial<WatchBlockNumberParameters<config, chainId>> &
|
|
62
|
+
ConfigParameter<config> &
|
|
63
|
+
EnabledParameter
|
|
64
|
+
>
|
|
65
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type DefaultError,
|
|
3
|
+
type MutateFunction,
|
|
4
|
+
type QueryKey,
|
|
5
|
+
type SolidInfiniteQueryOptions,
|
|
6
|
+
type SolidMutationOptions,
|
|
7
|
+
type SolidQueryOptions,
|
|
8
|
+
// TODO: import use___ once solid-query version is updated
|
|
9
|
+
createInfiniteQuery as tanstack_useInfiniteQuery,
|
|
10
|
+
createQuery as tanstack_useQuery,
|
|
11
|
+
type CreateInfiniteQueryResult as UseInfiniteQueryResult,
|
|
12
|
+
type CreateMutationResult as UseMutationResult,
|
|
13
|
+
type CreateQueryResult as UseQueryResult,
|
|
14
|
+
createMutation as useMutation,
|
|
15
|
+
} from '@tanstack/solid-query'
|
|
16
|
+
import type {
|
|
17
|
+
Compute,
|
|
18
|
+
ExactPartial,
|
|
19
|
+
Omit,
|
|
20
|
+
UnionStrictOmit,
|
|
21
|
+
} from '@wagmi/core/internal'
|
|
22
|
+
import { hashFn } from '@wagmi/core/query'
|
|
23
|
+
import { type Accessor, mergeProps } from 'solid-js'
|
|
24
|
+
|
|
25
|
+
export type SolidMutationParameters<
|
|
26
|
+
data = unknown,
|
|
27
|
+
error = Error,
|
|
28
|
+
variables = void,
|
|
29
|
+
context = unknown,
|
|
30
|
+
> = Compute<
|
|
31
|
+
Omit<
|
|
32
|
+
SolidMutationOptions<data, error, Compute<variables>, context>,
|
|
33
|
+
'mutationFn' | 'mutationKey' | 'throwOnError'
|
|
34
|
+
>
|
|
35
|
+
>
|
|
36
|
+
|
|
37
|
+
export type UseMutationReturnType<
|
|
38
|
+
data = unknown,
|
|
39
|
+
error = Error,
|
|
40
|
+
variables = void,
|
|
41
|
+
context = unknown,
|
|
42
|
+
mutate = MutateFunction,
|
|
43
|
+
mutateAsync = MutateFunction,
|
|
44
|
+
> = Compute<
|
|
45
|
+
UnionStrictOmit<
|
|
46
|
+
UseMutationResult<data, error, variables, context>,
|
|
47
|
+
'mutate' | 'mutateAsync'
|
|
48
|
+
> & {
|
|
49
|
+
mutate: mutate
|
|
50
|
+
mutateAsync: mutateAsync
|
|
51
|
+
}
|
|
52
|
+
>
|
|
53
|
+
|
|
54
|
+
export { useMutation }
|
|
55
|
+
|
|
56
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
57
|
+
|
|
58
|
+
export type SolidQueryParameters<
|
|
59
|
+
queryFnData = unknown,
|
|
60
|
+
error = DefaultError,
|
|
61
|
+
data = queryFnData,
|
|
62
|
+
queryKey extends QueryKey = QueryKey,
|
|
63
|
+
> = Compute<
|
|
64
|
+
ExactPartial<
|
|
65
|
+
Omit<SolidQueryOptions<queryFnData, error, data, queryKey>, 'initialData'>
|
|
66
|
+
> & {
|
|
67
|
+
// Fix `initialData` type
|
|
68
|
+
initialData?:
|
|
69
|
+
| SolidQueryOptions<queryFnData, error, data, queryKey>['initialData']
|
|
70
|
+
| undefined
|
|
71
|
+
}
|
|
72
|
+
>
|
|
73
|
+
|
|
74
|
+
export type UseQueryReturnType<data = unknown, error = DefaultError> = Compute<
|
|
75
|
+
UseQueryResult<data, error> & {
|
|
76
|
+
queryKey: QueryKey
|
|
77
|
+
}
|
|
78
|
+
>
|
|
79
|
+
|
|
80
|
+
// Adding some basic customization.
|
|
81
|
+
// Ideally we don't have this function, but `import('@tanstack/react-query').useQuery` currently has some quirks where it is super hard to
|
|
82
|
+
// pass down the inferred `initialData` type because of it's discriminated overload in the on `useQuery`.
|
|
83
|
+
export function useQuery<queryFnData, error, data, queryKey extends QueryKey>(
|
|
84
|
+
parameters: Accessor<
|
|
85
|
+
SolidQueryParameters<queryFnData, error, data, queryKey> & {
|
|
86
|
+
queryKey: QueryKey
|
|
87
|
+
}
|
|
88
|
+
>,
|
|
89
|
+
): UseQueryReturnType<data, error> {
|
|
90
|
+
const result = tanstack_useQuery(() => ({
|
|
91
|
+
...(parameters() as any),
|
|
92
|
+
queryKeyHashFn: hashFn, // for bigint support
|
|
93
|
+
}))
|
|
94
|
+
return mergeProps(result, {
|
|
95
|
+
get queryKey() {
|
|
96
|
+
return parameters().queryKey
|
|
97
|
+
},
|
|
98
|
+
}) as UseQueryReturnType<data, error>
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
102
|
+
|
|
103
|
+
export type SolidInfiniteQueryParameters<
|
|
104
|
+
queryFnData = unknown,
|
|
105
|
+
error = DefaultError,
|
|
106
|
+
data = queryFnData,
|
|
107
|
+
queryData = queryFnData,
|
|
108
|
+
queryKey extends QueryKey = QueryKey,
|
|
109
|
+
pageParam = unknown,
|
|
110
|
+
> = Compute<
|
|
111
|
+
Omit<
|
|
112
|
+
SolidInfiniteQueryOptions<
|
|
113
|
+
queryFnData,
|
|
114
|
+
error,
|
|
115
|
+
data,
|
|
116
|
+
queryData,
|
|
117
|
+
queryKey,
|
|
118
|
+
pageParam
|
|
119
|
+
>,
|
|
120
|
+
'initialData'
|
|
121
|
+
> & {
|
|
122
|
+
// Fix `initialData` type
|
|
123
|
+
initialData?:
|
|
124
|
+
| SolidInfiniteQueryOptions<
|
|
125
|
+
queryFnData,
|
|
126
|
+
error,
|
|
127
|
+
data,
|
|
128
|
+
queryKey
|
|
129
|
+
>['initialData']
|
|
130
|
+
| undefined
|
|
131
|
+
}
|
|
132
|
+
>
|
|
133
|
+
|
|
134
|
+
export type UseInfiniteQueryReturnType<
|
|
135
|
+
data = unknown,
|
|
136
|
+
error = DefaultError,
|
|
137
|
+
> = UseInfiniteQueryResult<data, error> & {
|
|
138
|
+
queryKey: QueryKey
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Adding some basic customization.
|
|
142
|
+
export function useInfiniteQuery<
|
|
143
|
+
queryFnData,
|
|
144
|
+
error,
|
|
145
|
+
data,
|
|
146
|
+
queryData,
|
|
147
|
+
queryKey extends QueryKey,
|
|
148
|
+
pageParam = unknown,
|
|
149
|
+
>(
|
|
150
|
+
parameters: Accessor<
|
|
151
|
+
SolidInfiniteQueryParameters<
|
|
152
|
+
queryFnData,
|
|
153
|
+
error,
|
|
154
|
+
data,
|
|
155
|
+
queryData,
|
|
156
|
+
queryKey,
|
|
157
|
+
pageParam
|
|
158
|
+
> & {
|
|
159
|
+
queryKey: QueryKey
|
|
160
|
+
}
|
|
161
|
+
>,
|
|
162
|
+
): UseInfiniteQueryReturnType<data, error> {
|
|
163
|
+
const result = tanstack_useInfiniteQuery(() => ({
|
|
164
|
+
...(parameters() as any),
|
|
165
|
+
queryKeyHashFn: hashFn, // for bigint support
|
|
166
|
+
}))
|
|
167
|
+
return mergeProps(
|
|
168
|
+
result,
|
|
169
|
+
parameters().queryKey,
|
|
170
|
+
) as unknown as UseInfiniteQueryReturnType<data, error>
|
|
171
|
+
}
|
package/src/version.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const version = '0.0.1'
|