@renegade-fi/core
Version:
VanillaJS library for Renegade
68 lines (63 loc) • 1.51 kB
text/typescript
import { BaseError } from './base.js'
export type SocketClosedErrorType = SocketClosedError & {
name: 'SocketClosedError'
}
export class SocketClosedError extends BaseError {
constructor({
url,
}: {
url?: string | undefined
} = {}) {
super('The socket has been closed.', {
metaMessages: [url && `URL: ${url}`].filter(Boolean) as string[],
name: 'SocketClosedError',
})
}
}
export type WebSocketRequestErrorType = WebSocketRequestError & {
name: 'WebSocketRequestError'
}
export class WebSocketRequestError extends BaseError {
constructor({
body,
cause,
details,
url,
}: {
body?: { [key: string]: unknown } | undefined
cause?: Error | undefined
details?: string | undefined
url: string
}) {
super('WebSocket request failed.', {
cause,
details,
metaMessages: [
`URL: ${url}`,
body && `Request body: ${JSON.stringify(body)}`,
].filter(Boolean) as string[],
name: 'WebSocketRequestError',
})
}
}
export type WebSocketConnectionErrorType = WebSocketConnectionError & {
name: 'WebSocketConnectionError'
}
export class WebSocketConnectionError extends BaseError {
constructor({
url,
cause,
details,
}: {
url: string
cause?: Error | undefined
details?: string | undefined
}) {
super('Failed to establish WebSocket connection.', {
cause,
details,
metaMessages: [`URL: ${url}`],
name: 'WebSocketConnectionError',
})
}
}