@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.
Files changed (153) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -0
  3. package/actions/package.json +5 -0
  4. package/chains/package.json +5 -0
  5. package/connectors/package.json +5 -0
  6. package/dist/esm/context.js +28 -0
  7. package/dist/esm/context.js.map +1 -0
  8. package/dist/esm/errors/base.js +20 -0
  9. package/dist/esm/errors/base.js.map +1 -0
  10. package/dist/esm/errors/context.js +15 -0
  11. package/dist/esm/errors/context.js.map +1 -0
  12. package/dist/esm/exports/actions.js +7 -0
  13. package/dist/esm/exports/actions.js.map +1 -0
  14. package/dist/esm/exports/chains.js +7 -0
  15. package/dist/esm/exports/chains.js.map +1 -0
  16. package/dist/esm/exports/connectors.js +7 -0
  17. package/dist/esm/exports/connectors.js.map +1 -0
  18. package/dist/esm/exports/index.js +47 -0
  19. package/dist/esm/exports/index.js.map +1 -0
  20. package/dist/esm/exports/query.js +8 -0
  21. package/dist/esm/exports/query.js.map +1 -0
  22. package/dist/esm/hydrate.js +19 -0
  23. package/dist/esm/hydrate.js.map +1 -0
  24. package/dist/esm/primitives/useBalance.js +16 -0
  25. package/dist/esm/primitives/useBalance.js.map +1 -0
  26. package/dist/esm/primitives/useBlockNumber.js +36 -0
  27. package/dist/esm/primitives/useBlockNumber.js.map +1 -0
  28. package/dist/esm/primitives/useChainId.js +20 -0
  29. package/dist/esm/primitives/useChainId.js.map +1 -0
  30. package/dist/esm/primitives/useChains.js +19 -0
  31. package/dist/esm/primitives/useChains.js.map +1 -0
  32. package/dist/esm/primitives/useClient.js +22 -0
  33. package/dist/esm/primitives/useClient.js.map +1 -0
  34. package/dist/esm/primitives/useConfig.js +12 -0
  35. package/dist/esm/primitives/useConfig.js.map +1 -0
  36. package/dist/esm/primitives/useConnect.js +20 -0
  37. package/dist/esm/primitives/useConnect.js.map +1 -0
  38. package/dist/esm/primitives/useConnection.js +20 -0
  39. package/dist/esm/primitives/useConnection.js.map +1 -0
  40. package/dist/esm/primitives/useConnectionEffect.js +36 -0
  41. package/dist/esm/primitives/useConnectionEffect.js.map +1 -0
  42. package/dist/esm/primitives/useConnections.js +20 -0
  43. package/dist/esm/primitives/useConnections.js.map +1 -0
  44. package/dist/esm/primitives/useConnectorClient.js +31 -0
  45. package/dist/esm/primitives/useConnectorClient.js.map +1 -0
  46. package/dist/esm/primitives/useConnectors.js +20 -0
  47. package/dist/esm/primitives/useConnectors.js.map +1 -0
  48. package/dist/esm/primitives/useDisconnect.js +10 -0
  49. package/dist/esm/primitives/useDisconnect.js.map +1 -0
  50. package/dist/esm/primitives/useReconnect.js +10 -0
  51. package/dist/esm/primitives/useReconnect.js.map +1 -0
  52. package/dist/esm/primitives/useSwitchChain.js +10 -0
  53. package/dist/esm/primitives/useSwitchChain.js.map +1 -0
  54. package/dist/esm/primitives/useSwitchConnection.js +10 -0
  55. package/dist/esm/primitives/useSwitchConnection.js.map +1 -0
  56. package/dist/esm/primitives/useWatchBlockNumber.js +23 -0
  57. package/dist/esm/primitives/useWatchBlockNumber.js.map +1 -0
  58. package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
  59. package/dist/esm/utils/getVersion.js +3 -0
  60. package/dist/esm/utils/getVersion.js.map +1 -0
  61. package/dist/esm/utils/query.js +29 -0
  62. package/dist/esm/utils/query.js.map +1 -0
  63. package/dist/esm/version.js +2 -0
  64. package/dist/esm/version.js.map +1 -0
  65. package/dist/types/context.d.ts +10 -0
  66. package/dist/types/context.d.ts.map +1 -0
  67. package/dist/types/errors/base.d.ts +10 -0
  68. package/dist/types/errors/base.d.ts.map +1 -0
  69. package/dist/types/errors/context.d.ts +9 -0
  70. package/dist/types/errors/context.d.ts.map +1 -0
  71. package/dist/types/exports/actions.d.ts +2 -0
  72. package/dist/types/exports/actions.d.ts.map +1 -0
  73. package/dist/types/exports/chains.d.ts +2 -0
  74. package/dist/types/exports/chains.d.ts.map +1 -0
  75. package/dist/types/exports/connectors.d.ts +2 -0
  76. package/dist/types/exports/connectors.d.ts.map +1 -0
  77. package/dist/types/exports/index.d.ts +24 -0
  78. package/dist/types/exports/index.d.ts.map +1 -0
  79. package/dist/types/exports/query.d.ts +3 -0
  80. package/dist/types/exports/query.d.ts.map +1 -0
  81. package/dist/types/hydrate.d.ts +9 -0
  82. package/dist/types/hydrate.d.ts.map +1 -0
  83. package/dist/types/primitives/useBalance.d.ts +13 -0
  84. package/dist/types/primitives/useBalance.d.ts.map +1 -0
  85. package/dist/types/primitives/useBlockNumber.d.ts +16 -0
  86. package/dist/types/primitives/useBlockNumber.d.ts.map +1 -0
  87. package/dist/types/primitives/useChainId.d.ts +12 -0
  88. package/dist/types/primitives/useChainId.d.ts.map +1 -0
  89. package/dist/types/primitives/useChains.d.ts +12 -0
  90. package/dist/types/primitives/useChains.d.ts.map +1 -0
  91. package/dist/types/primitives/useClient.d.ts +12 -0
  92. package/dist/types/primitives/useClient.d.ts.map +1 -0
  93. package/dist/types/primitives/useConfig.d.ts +11 -0
  94. package/dist/types/primitives/useConfig.d.ts.map +1 -0
  95. package/dist/types/primitives/useConnect.d.ts +13 -0
  96. package/dist/types/primitives/useConnect.d.ts.map +1 -0
  97. package/dist/types/primitives/useConnection.d.ts +12 -0
  98. package/dist/types/primitives/useConnection.d.ts.map +1 -0
  99. package/dist/types/primitives/useConnectionEffect.d.ts +17 -0
  100. package/dist/types/primitives/useConnectionEffect.d.ts.map +1 -0
  101. package/dist/types/primitives/useConnections.d.ts +12 -0
  102. package/dist/types/primitives/useConnections.d.ts.map +1 -0
  103. package/dist/types/primitives/useConnectorClient.d.ts +13 -0
  104. package/dist/types/primitives/useConnectorClient.d.ts.map +1 -0
  105. package/dist/types/primitives/useConnectors.d.ts +12 -0
  106. package/dist/types/primitives/useConnectors.d.ts.map +1 -0
  107. package/dist/types/primitives/useDisconnect.d.ts +13 -0
  108. package/dist/types/primitives/useDisconnect.d.ts.map +1 -0
  109. package/dist/types/primitives/useReconnect.d.ts +13 -0
  110. package/dist/types/primitives/useReconnect.d.ts.map +1 -0
  111. package/dist/types/primitives/useSwitchChain.d.ts +13 -0
  112. package/dist/types/primitives/useSwitchChain.d.ts.map +1 -0
  113. package/dist/types/primitives/useSwitchConnection.d.ts +13 -0
  114. package/dist/types/primitives/useSwitchConnection.d.ts.map +1 -0
  115. package/dist/types/primitives/useWatchBlockNumber.d.ts +11 -0
  116. package/dist/types/primitives/useWatchBlockNumber.d.ts.map +1 -0
  117. package/dist/types/utils/getVersion.d.ts +2 -0
  118. package/dist/types/utils/getVersion.d.ts.map +1 -0
  119. package/dist/types/utils/query.d.ts +28 -0
  120. package/dist/types/utils/query.d.ts.map +1 -0
  121. package/dist/types/version.d.ts +2 -0
  122. package/dist/types/version.d.ts.map +1 -0
  123. package/package.json +95 -7
  124. package/query/package.json +5 -0
  125. package/src/context.ts +43 -0
  126. package/src/errors/base.ts +14 -0
  127. package/src/errors/context.ts +13 -0
  128. package/src/exports/actions.ts +7 -0
  129. package/src/exports/chains.ts +7 -0
  130. package/src/exports/connectors.ts +7 -0
  131. package/src/exports/index.ts +134 -0
  132. package/src/exports/query.ts +19 -0
  133. package/src/hydrate.ts +27 -0
  134. package/src/primitives/useBalance.ts +46 -0
  135. package/src/primitives/useBlockNumber.ts +99 -0
  136. package/src/primitives/useChainId.ts +42 -0
  137. package/src/primitives/useChains.ts +42 -0
  138. package/src/primitives/useClient.ts +67 -0
  139. package/src/primitives/useConfig.ts +27 -0
  140. package/src/primitives/useConnect.ts +63 -0
  141. package/src/primitives/useConnection.ts +44 -0
  142. package/src/primitives/useConnectionEffect.ts +66 -0
  143. package/src/primitives/useConnections.ts +34 -0
  144. package/src/primitives/useConnectorClient.ts +86 -0
  145. package/src/primitives/useConnectors.ts +47 -0
  146. package/src/primitives/useDisconnect.ts +44 -0
  147. package/src/primitives/useReconnect.ts +44 -0
  148. package/src/primitives/useSwitchChain.ts +58 -0
  149. package/src/primitives/useSwitchConnection.ts +60 -0
  150. package/src/primitives/useWatchBlockNumber.ts +65 -0
  151. package/src/utils/getVersion.ts +3 -0
  152. package/src/utils/query.ts +171 -0
  153. 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,3 @@
1
+ import { version } from '../version.js'
2
+
3
+ export const getVersion = () => `@wagmi/solid@${version}`
@@ -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'