FRE-600: Fix code review blockers

- Consolidated duplicate UndoManagers to single instance
- Fixed connection promise to only resolve on 'connected' status
- Fixed WebSocketProvider import (WebsocketProvider)
- Added proper doc.destroy() cleanup
- Renamed isPresenceInitialized property to avoid conflict

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-25 00:08:01 -04:00
parent 65b552bb08
commit 7c684a42cc
48450 changed files with 5679671 additions and 383 deletions

57
node_modules/viem/utils/promise/withRetry.ts generated vendored Normal file
View File

@@ -0,0 +1,57 @@
import type { ErrorType } from '../../errors/utils.js'
import { wait } from '../wait.js'
export type WithRetryParameters = {
// The delay (in ms) between retries.
delay?:
| ((config: { count: number; error: Error }) => number)
| number
| undefined
// The max number of times to retry.
retryCount?: number | undefined
// Whether or not to retry when an error is thrown.
shouldRetry?:
| (({
count,
error,
}: {
count: number
error: Error
}) => Promise<boolean> | boolean)
| undefined
}
export type WithRetryErrorType = ErrorType
export function withRetry<data>(
fn: () => Promise<data>,
{
delay: delay_ = 100,
retryCount = 2,
shouldRetry = () => true,
}: WithRetryParameters = {},
) {
return new Promise<data>((resolve, reject) => {
const attemptRetry = async ({ count = 0 } = {}) => {
const retry = async ({ error }: { error: Error }) => {
const delay =
typeof delay_ === 'function' ? delay_({ count, error }) : delay_
if (delay) await wait(delay)
attemptRetry({ count: count + 1 })
}
try {
const data = await fn()
resolve(data)
} catch (err) {
if (
count < retryCount &&
(await shouldRetry({ count, error: err as Error }))
)
return retry({ error: err as Error })
reject(err)
}
}
attemptRetry()
})
}