viem 2.9.23 → 2.9.24
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/CHANGELOG.md +8 -0
- package/_cjs/actions/public/watchBlockNumber.js +20 -2
- package/_cjs/actions/public/watchBlockNumber.js.map +1 -1
- package/_cjs/actions/public/watchBlocks.js +20 -2
- package/_cjs/actions/public/watchBlocks.js.map +1 -1
- package/_cjs/actions/public/watchContractEvent.js +22 -4
- package/_cjs/actions/public/watchContractEvent.js.map +1 -1
- package/_cjs/actions/public/watchEvent.js +22 -4
- package/_cjs/actions/public/watchEvent.js.map +1 -1
- package/_cjs/chains/definitions/cyberTestnet.js +29 -0
- package/_cjs/chains/definitions/cyberTestnet.js.map +1 -0
- package/_cjs/chains/index.js +7 -5
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/clients/transports/fallback.js +2 -2
- package/_cjs/clients/transports/fallback.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_esm/actions/public/waitForTransactionReceipt.js +1 -1
- package/_esm/actions/public/watchBlockNumber.js +20 -2
- package/_esm/actions/public/watchBlockNumber.js.map +1 -1
- package/_esm/actions/public/watchBlocks.js +20 -2
- package/_esm/actions/public/watchBlocks.js.map +1 -1
- package/_esm/actions/public/watchContractEvent.js +22 -4
- package/_esm/actions/public/watchContractEvent.js.map +1 -1
- package/_esm/actions/public/watchEvent.js +22 -4
- package/_esm/actions/public/watchEvent.js.map +1 -1
- package/_esm/chains/definitions/cyberTestnet.js +26 -0
- package/_esm/chains/definitions/cyberTestnet.js.map +1 -0
- package/_esm/chains/index.js +1 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/clients/transports/fallback.js +2 -2
- package/_esm/clients/transports/fallback.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_types/actions/public/waitForTransactionReceipt.d.ts +1 -1
- package/_types/actions/public/watchBlockNumber.d.ts +2 -2
- package/_types/actions/public/watchBlockNumber.d.ts.map +1 -1
- package/_types/actions/public/watchBlocks.d.ts +2 -2
- package/_types/actions/public/watchBlocks.d.ts.map +1 -1
- package/_types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/_types/actions/public/watchEvent.d.ts.map +1 -1
- package/_types/chains/definitions/cyberTestnet.d.ts +34 -0
- package/_types/chains/definitions/cyberTestnet.d.ts.map +1 -0
- package/_types/chains/index.d.ts +1 -0
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/clients/transports/fallback.d.ts +5 -3
- package/_types/clients/transports/fallback.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/types/transport.d.ts +6 -1
- package/_types/types/transport.d.ts.map +1 -1
- package/_types/types/utils.d.ts +11 -0
- package/_types/types/utils.d.ts.map +1 -1
- package/actions/public/waitForTransactionReceipt.ts +1 -1
- package/actions/public/watchBlockNumber.ts +36 -17
- package/actions/public/watchBlocks.ts +25 -5
- package/actions/public/watchContractEvent.ts +66 -48
- package/actions/public/watchEvent.ts +24 -5
- package/chains/definitions/cyberTestnet.ts +26 -0
- package/chains/index.ts +1 -0
- package/clients/transports/fallback.ts +16 -13
- package/errors/version.ts +1 -1
- package/package.json +1 -1
- package/types/transport.ts +16 -1
- package/types/utils.ts +16 -0
package/_types/types/utils.d.ts
CHANGED
@@ -149,6 +149,17 @@ export type Prettify<T> = {
|
|
149
149
|
* => { a: string, b: number }
|
150
150
|
*/
|
151
151
|
export type RequiredBy<T, K extends keyof T> = Omit<T, K> & ExactRequired<Pick<T, K>>;
|
152
|
+
/**
|
153
|
+
* @description Returns truthy if `array` contains `value`.
|
154
|
+
*
|
155
|
+
* @example
|
156
|
+
* Some<[1, 2, 3], 2>
|
157
|
+
* => true
|
158
|
+
*/
|
159
|
+
export type Some<array extends unknown[], value> = array extends [
|
160
|
+
value,
|
161
|
+
...unknown[]
|
162
|
+
] ? true : array extends [unknown, ...infer rest] ? Some<rest, value> : false;
|
152
163
|
/**
|
153
164
|
* @description Creates a type that extracts the values of T.
|
154
165
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../types/utils.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../types/utils.ts"],"names":[],"mappings":"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"}
|
@@ -88,7 +88,7 @@ export type WaitForTransactionReceiptErrorType =
|
|
88
88
|
| ErrorType
|
89
89
|
|
90
90
|
/**
|
91
|
-
* Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt).
|
91
|
+
* Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt).
|
92
92
|
*
|
93
93
|
* - Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt
|
94
94
|
* - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/sending-transactions
|
@@ -2,7 +2,7 @@ import type { Client } from '../../clients/createClient.js'
|
|
2
2
|
import type { Transport } from '../../clients/transports/createTransport.js'
|
3
3
|
import type { ErrorType } from '../../errors/utils.js'
|
4
4
|
import type { Chain } from '../../types/chain.js'
|
5
|
-
import type {
|
5
|
+
import type { HasTransportType } from '../../types/transport.js'
|
6
6
|
import { hexToBigInt } from '../../utils/encoding/fromHex.js'
|
7
7
|
import { getAction } from '../../utils/getAction.js'
|
8
8
|
import { observe } from '../../utils/observe.js'
|
@@ -28,7 +28,7 @@ export type WatchBlockNumberParameters<
|
|
28
28
|
/** The callback to call when an error occurred when trying to get for a new block. */
|
29
29
|
onError?: ((error: Error) => void) | undefined
|
30
30
|
} & (
|
31
|
-
| (
|
31
|
+
| (HasTransportType<TTransport, 'webSocket'> extends true
|
32
32
|
? {
|
33
33
|
emitMissed?: undefined
|
34
34
|
emitOnBegin?: undefined
|
@@ -91,8 +91,16 @@ export function watchBlockNumber<
|
|
91
91
|
pollingInterval = client.pollingInterval,
|
92
92
|
}: WatchBlockNumberParameters<TTransport>,
|
93
93
|
): WatchBlockNumberReturnType {
|
94
|
-
const enablePolling =
|
95
|
-
typeof poll_ !== 'undefined'
|
94
|
+
const enablePolling = (() => {
|
95
|
+
if (typeof poll_ !== 'undefined') return poll_
|
96
|
+
if (client.transport.type === 'webSocket') return false
|
97
|
+
if (
|
98
|
+
client.transport.type === 'fallback' &&
|
99
|
+
client.transport.transports[0].config.type === 'webSocket'
|
100
|
+
)
|
101
|
+
return false
|
102
|
+
return true
|
103
|
+
})()
|
96
104
|
|
97
105
|
let prevBlockNumber: GetBlockNumberReturnType | undefined
|
98
106
|
|
@@ -161,19 +169,30 @@ export function watchBlockNumber<
|
|
161
169
|
let unsubscribe = () => (active = false)
|
162
170
|
;(async () => {
|
163
171
|
try {
|
164
|
-
const
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
172
|
+
const transport = (() => {
|
173
|
+
if (client.transport.type === 'fallback') {
|
174
|
+
const transport = client.transport.transports.find(
|
175
|
+
(transport: ReturnType<Transport>) =>
|
176
|
+
transport.config.type === 'webSocket',
|
177
|
+
)
|
178
|
+
if (!transport) return client.transport
|
179
|
+
return transport.value
|
180
|
+
}
|
181
|
+
return client.transport
|
182
|
+
})()
|
183
|
+
|
184
|
+
const { unsubscribe: unsubscribe_ } = await transport.subscribe({
|
185
|
+
params: ['newHeads'],
|
186
|
+
onData(data: any) {
|
187
|
+
if (!active) return
|
188
|
+
const blockNumber = hexToBigInt(data.result?.number)
|
189
|
+
emit.onBlockNumber(blockNumber, prevBlockNumber)
|
190
|
+
prevBlockNumber = blockNumber
|
191
|
+
},
|
192
|
+
onError(error: Error) {
|
193
|
+
emit.onError?.(error)
|
194
|
+
},
|
195
|
+
})
|
177
196
|
unsubscribe = unsubscribe_
|
178
197
|
if (!active) unsubscribe()
|
179
198
|
} catch (err) {
|
@@ -3,7 +3,7 @@ import type { Transport } from '../../clients/transports/createTransport.js'
|
|
3
3
|
import type { ErrorType } from '../../errors/utils.js'
|
4
4
|
import type { BlockTag } from '../../types/block.js'
|
5
5
|
import type { Chain } from '../../types/chain.js'
|
6
|
-
import type {
|
6
|
+
import type { HasTransportType } from '../../types/transport.js'
|
7
7
|
import { formatBlock } from '../../utils/formatters/block.js'
|
8
8
|
import { getAction } from '../../utils/getAction.js'
|
9
9
|
import { observe } from '../../utils/observe.js'
|
@@ -40,7 +40,7 @@ export type WatchBlocksParameters<
|
|
40
40
|
/** The callback to call when an error occurred when trying to get for a new block. */
|
41
41
|
onError?: ((error: Error) => void) | undefined
|
42
42
|
} & (
|
43
|
-
| (
|
43
|
+
| (HasTransportType<TTransport, 'webSocket'> extends true
|
44
44
|
? {
|
45
45
|
blockTag?: undefined
|
46
46
|
emitMissed?: undefined
|
@@ -116,8 +116,16 @@ export function watchBlocks<
|
|
116
116
|
pollingInterval = client.pollingInterval,
|
117
117
|
}: WatchBlocksParameters<TTransport, TChain, TIncludeTransactions, TBlockTag>,
|
118
118
|
): WatchBlocksReturnType {
|
119
|
-
const enablePolling =
|
120
|
-
typeof poll_ !== 'undefined'
|
119
|
+
const enablePolling = (() => {
|
120
|
+
if (typeof poll_ !== 'undefined') return poll_
|
121
|
+
if (client.transport.type === 'webSocket') return false
|
122
|
+
if (
|
123
|
+
client.transport.type === 'fallback' &&
|
124
|
+
client.transport.transports[0].config.type === 'webSocket'
|
125
|
+
)
|
126
|
+
return false
|
127
|
+
return true
|
128
|
+
})()
|
121
129
|
const includeTransactions = includeTransactions_ ?? false
|
122
130
|
|
123
131
|
let prevBlock:
|
@@ -199,7 +207,19 @@ export function watchBlocks<
|
|
199
207
|
let unsubscribe = () => (active = false)
|
200
208
|
;(async () => {
|
201
209
|
try {
|
202
|
-
const
|
210
|
+
const transport = (() => {
|
211
|
+
if (client.transport.type === 'fallback') {
|
212
|
+
const transport = client.transport.transports.find(
|
213
|
+
(transport: ReturnType<Transport>) =>
|
214
|
+
transport.config.type === 'webSocket',
|
215
|
+
)
|
216
|
+
if (!transport) return client.transport
|
217
|
+
return transport.value
|
218
|
+
}
|
219
|
+
return client.transport
|
220
|
+
})()
|
221
|
+
|
222
|
+
const { unsubscribe: unsubscribe_ } = await transport.subscribe({
|
203
223
|
params: ['newHeads'],
|
204
224
|
onData(data: any) {
|
205
225
|
if (!active) return
|
@@ -154,10 +154,17 @@ export function watchContractEvent<
|
|
154
154
|
strict: strict_,
|
155
155
|
} = parameters
|
156
156
|
|
157
|
-
const enablePolling =
|
158
|
-
typeof poll_ !== 'undefined'
|
159
|
-
|
160
|
-
|
157
|
+
const enablePolling = (() => {
|
158
|
+
if (typeof poll_ !== 'undefined') return poll_
|
159
|
+
if (typeof fromBlock === 'bigint') return true
|
160
|
+
if (client.transport.type === 'webSocket') return false
|
161
|
+
if (
|
162
|
+
client.transport.type === 'fallback' &&
|
163
|
+
client.transport.transports[0].config.type === 'webSocket'
|
164
|
+
)
|
165
|
+
return false
|
166
|
+
return true
|
167
|
+
})()
|
161
168
|
|
162
169
|
const pollContractEvent = () => {
|
163
170
|
const strict = strict_ ?? false
|
@@ -289,6 +296,18 @@ export function watchContractEvent<
|
|
289
296
|
return observe(observerId, { onLogs, onError }, (emit) => {
|
290
297
|
;(async () => {
|
291
298
|
try {
|
299
|
+
const transport = (() => {
|
300
|
+
if (client.transport.type === 'fallback') {
|
301
|
+
const transport = client.transport.transports.find(
|
302
|
+
(transport: ReturnType<Transport>) =>
|
303
|
+
transport.config.type === 'webSocket',
|
304
|
+
)
|
305
|
+
if (!transport) return client.transport
|
306
|
+
return transport.value
|
307
|
+
}
|
308
|
+
return client.transport
|
309
|
+
})()
|
310
|
+
|
292
311
|
const topics: LogTopic[] = eventName
|
293
312
|
? encodeEventTopics({
|
294
313
|
abi: abi,
|
@@ -297,51 +316,50 @@ export function watchContractEvent<
|
|
297
316
|
} as EncodeEventTopicsParameters)
|
298
317
|
: []
|
299
318
|
|
300
|
-
const { unsubscribe: unsubscribe_ } =
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
)
|
331
|
-
}
|
332
|
-
|
333
|
-
// Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).
|
334
|
-
const formatted = formatLog(log, {
|
335
|
-
args: isUnnamed ? [] : {},
|
336
|
-
eventName,
|
337
|
-
})
|
338
|
-
emit.onLogs([formatted] as any)
|
319
|
+
const { unsubscribe: unsubscribe_ } = await transport.subscribe({
|
320
|
+
params: ['logs', { address, topics }],
|
321
|
+
onData(data: any) {
|
322
|
+
if (!active) return
|
323
|
+
const log = data.result
|
324
|
+
try {
|
325
|
+
const { eventName, args } = decodeEventLog({
|
326
|
+
abi: abi,
|
327
|
+
data: log.data,
|
328
|
+
topics: log.topics as any,
|
329
|
+
strict: strict_,
|
330
|
+
})
|
331
|
+
const formatted = formatLog(log, {
|
332
|
+
args,
|
333
|
+
eventName: eventName as string,
|
334
|
+
})
|
335
|
+
emit.onLogs([formatted] as any)
|
336
|
+
} catch (err) {
|
337
|
+
let eventName: string | undefined
|
338
|
+
let isUnnamed: boolean | undefined
|
339
|
+
if (
|
340
|
+
err instanceof DecodeLogDataMismatch ||
|
341
|
+
err instanceof DecodeLogTopicsMismatch
|
342
|
+
) {
|
343
|
+
// If strict mode is on, and log data/topics do not match event definition, skip.
|
344
|
+
if (strict_) return
|
345
|
+
eventName = err.abiItem.name
|
346
|
+
isUnnamed = err.abiItem.inputs?.some(
|
347
|
+
(x) => !('name' in x && x.name),
|
348
|
+
)
|
339
349
|
}
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
350
|
+
|
351
|
+
// Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).
|
352
|
+
const formatted = formatLog(log, {
|
353
|
+
args: isUnnamed ? [] : {},
|
354
|
+
eventName,
|
355
|
+
})
|
356
|
+
emit.onLogs([formatted] as any)
|
357
|
+
}
|
358
|
+
},
|
359
|
+
onError(error: Error) {
|
360
|
+
emit.onError?.(error)
|
361
|
+
},
|
362
|
+
})
|
345
363
|
unsubscribe = unsubscribe_
|
346
364
|
if (!active) unsubscribe()
|
347
365
|
} catch (err) {
|
@@ -172,10 +172,17 @@ export function watchEvent<
|
|
172
172
|
strict: strict_,
|
173
173
|
}: WatchEventParameters<TAbiEvent, TAbiEvents, TStrict, TTransport>,
|
174
174
|
): WatchEventReturnType {
|
175
|
-
const enablePolling =
|
176
|
-
typeof poll_ !== 'undefined'
|
177
|
-
|
178
|
-
|
175
|
+
const enablePolling = (() => {
|
176
|
+
if (typeof poll_ !== 'undefined') return poll_
|
177
|
+
if (typeof fromBlock === 'bigint') return true
|
178
|
+
if (client.transport.type === 'webSocket') return false
|
179
|
+
if (
|
180
|
+
client.transport.type === 'fallback' &&
|
181
|
+
client.transport.transports[0].config.type === 'webSocket'
|
182
|
+
)
|
183
|
+
return false
|
184
|
+
return true
|
185
|
+
})()
|
179
186
|
const strict = strict_ ?? false
|
180
187
|
|
181
188
|
const pollEvent = () => {
|
@@ -296,6 +303,18 @@ export function watchEvent<
|
|
296
303
|
let unsubscribe = () => (active = false)
|
297
304
|
;(async () => {
|
298
305
|
try {
|
306
|
+
const transport = (() => {
|
307
|
+
if (client.transport.type === 'fallback') {
|
308
|
+
const transport = client.transport.transports.find(
|
309
|
+
(transport: ReturnType<Transport>) =>
|
310
|
+
transport.config.type === 'webSocket',
|
311
|
+
)
|
312
|
+
if (!transport) return client.transport
|
313
|
+
return transport.value
|
314
|
+
}
|
315
|
+
return client.transport
|
316
|
+
})()
|
317
|
+
|
299
318
|
const events_ = events ?? (event ? [event] : undefined)
|
300
319
|
let topics: LogTopic[] = []
|
301
320
|
if (events_) {
|
@@ -311,7 +330,7 @@ export function watchEvent<
|
|
311
330
|
if (event) topics = topics[0] as LogTopic[]
|
312
331
|
}
|
313
332
|
|
314
|
-
const { unsubscribe: unsubscribe_ } = await
|
333
|
+
const { unsubscribe: unsubscribe_ } = await transport.subscribe({
|
315
334
|
params: ['logs', { address, topics }],
|
316
335
|
onData(data: any) {
|
317
336
|
if (!active) return
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const cyberTestnet = /*#__PURE__*/ defineChain({
|
4
|
+
id: 111_557_560,
|
5
|
+
name: 'Cyber Testnet',
|
6
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
7
|
+
rpcUrls: {
|
8
|
+
default: {
|
9
|
+
http: ['https://cyber-testnet.alt.technology'],
|
10
|
+
},
|
11
|
+
},
|
12
|
+
blockExplorers: {
|
13
|
+
default: {
|
14
|
+
name: 'Blockscout',
|
15
|
+
url: 'https://cyber-testnet-explorer.alt.technology',
|
16
|
+
apiUrl: 'https://cyber-testnet-explorer.alt.technology/api',
|
17
|
+
},
|
18
|
+
},
|
19
|
+
contracts: {
|
20
|
+
multicall3: {
|
21
|
+
address: '0xffc391F0018269d4758AEA1a144772E8FB99545E',
|
22
|
+
blockCreated: 304545,
|
23
|
+
},
|
24
|
+
},
|
25
|
+
testnet: true,
|
26
|
+
})
|
package/chains/index.ts
CHANGED
@@ -52,6 +52,7 @@ export { coreDao } from './definitions/coreDao.js'
|
|
52
52
|
export { cronos } from './definitions/cronos.js'
|
53
53
|
export { cronosTestnet } from './definitions/cronosTestnet.js'
|
54
54
|
export { crossbell } from './definitions/crossbell.js'
|
55
|
+
export { cyberTestnet } from './definitions/cyberTestnet.js'
|
55
56
|
export { darwinia } from './definitions/darwinia.js'
|
56
57
|
export { defichainEvm } from './definitions/defichainEvm.js'
|
57
58
|
export { defichainEvmTestnet } from './definitions/defichainEvmTestnet.js'
|
@@ -80,20 +80,23 @@ export type FallbackTransportConfig = {
|
|
80
80
|
retryDelay?: TransportConfig['retryDelay'] | undefined
|
81
81
|
}
|
82
82
|
|
83
|
-
export type FallbackTransport = Transport
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
>
|
83
|
+
export type FallbackTransport<transports extends Transport[] = Transport[]> =
|
84
|
+
Transport<
|
85
|
+
'fallback',
|
86
|
+
{
|
87
|
+
onResponse: (fn: OnResponseFn) => void
|
88
|
+
transports: {
|
89
|
+
[key in keyof transports]: ReturnType<transports[key]>
|
90
|
+
}
|
91
|
+
}
|
92
|
+
>
|
90
93
|
|
91
94
|
export type FallbackTransportErrorType = CreateTransportErrorType | ErrorType
|
92
95
|
|
93
|
-
export function fallback(
|
94
|
-
transports_:
|
96
|
+
export function fallback<const transports extends Transport[]>(
|
97
|
+
transports_: transports,
|
95
98
|
config: FallbackTransportConfig = {},
|
96
|
-
): FallbackTransport {
|
99
|
+
): FallbackTransport<transports> {
|
97
100
|
const {
|
98
101
|
key = 'fallback',
|
99
102
|
name = 'Fallback',
|
@@ -101,7 +104,7 @@ export function fallback(
|
|
101
104
|
retryCount,
|
102
105
|
retryDelay,
|
103
106
|
} = config
|
104
|
-
return ({ chain, pollingInterval = 4_000, timeout, ...rest }) => {
|
107
|
+
return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {
|
105
108
|
let transports = transports_
|
106
109
|
|
107
110
|
let onResponse: OnResponseFn = () => {}
|
@@ -168,7 +171,7 @@ export function fallback(
|
|
168
171
|
rankTransports({
|
169
172
|
chain,
|
170
173
|
interval: rankOptions.interval ?? pollingInterval,
|
171
|
-
onTransports: (transports_) => (transports = transports_),
|
174
|
+
onTransports: (transports_) => (transports = transports_ as transports),
|
172
175
|
sampleCount: rankOptions.sampleCount,
|
173
176
|
timeout: rankOptions.timeout,
|
174
177
|
transports,
|
@@ -176,7 +179,7 @@ export function fallback(
|
|
176
179
|
})
|
177
180
|
}
|
178
181
|
return transport
|
179
|
-
}
|
182
|
+
}) as FallbackTransport<transports>
|
180
183
|
}
|
181
184
|
|
182
185
|
function shouldThrow(error: Error) {
|
package/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '2.9.
|
1
|
+
export const version = '2.9.24'
|
package/package.json
CHANGED
package/types/transport.ts
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
import type { Transport } from '../clients/transports/createTransport.js'
|
2
|
+
import type { FallbackTransport } from '../clients/transports/fallback.js'
|
3
|
+
import type { Some } from './utils.js'
|
2
4
|
|
3
5
|
export type GetTransportConfig<TTransport extends Transport> =
|
4
6
|
ReturnType<TTransport>['config']
|
5
7
|
|
6
8
|
export type GetPollOptions<transport extends Transport> =
|
7
|
-
| (
|
9
|
+
| (HasTransportType<transport, 'webSocket'> extends true
|
8
10
|
? {
|
9
11
|
batch?: undefined
|
10
12
|
/**
|
@@ -28,3 +30,16 @@ export type GetPollOptions<transport extends Transport> =
|
|
28
30
|
*/
|
29
31
|
pollingInterval?: number | undefined
|
30
32
|
}
|
33
|
+
|
34
|
+
export type HasTransportType<transport extends Transport, type extends string> =
|
35
|
+
| (GetTransportConfig<transport>['type'] extends type ? true : never)
|
36
|
+
| (transport extends FallbackTransport<infer transports extends Transport[]>
|
37
|
+
? Some<
|
38
|
+
{
|
39
|
+
[key in keyof transports]: GetTransportConfig<
|
40
|
+
transports[key]
|
41
|
+
>['type']
|
42
|
+
},
|
43
|
+
type
|
44
|
+
>
|
45
|
+
: false)
|
package/types/utils.ts
CHANGED
@@ -191,6 +191,22 @@ export type Prettify<T> = {
|
|
191
191
|
export type RequiredBy<T, K extends keyof T> = Omit<T, K> &
|
192
192
|
ExactRequired<Pick<T, K>>
|
193
193
|
|
194
|
+
/**
|
195
|
+
* @description Returns truthy if `array` contains `value`.
|
196
|
+
*
|
197
|
+
* @example
|
198
|
+
* Some<[1, 2, 3], 2>
|
199
|
+
* => true
|
200
|
+
*/
|
201
|
+
export type Some<array extends unknown[], value> = array extends [
|
202
|
+
value,
|
203
|
+
...unknown[],
|
204
|
+
]
|
205
|
+
? true
|
206
|
+
: array extends [unknown, ...infer rest]
|
207
|
+
? Some<rest, value>
|
208
|
+
: false
|
209
|
+
|
194
210
|
/**
|
195
211
|
* @description Creates a type that extracts the values of T.
|
196
212
|
*
|