|
|
|
|
import {
|
|
|
|
|
ERROR_NAME_ALREADY_EXISTS,
|
|
|
|
|
ERROR_NAME_CHANNEL_ALREADY_EXISTS,
|
|
|
|
|
ERROR_NAME_CHANNEL_NOT_FOUND,
|
|
|
|
|
ERROR_NAME_DISPOSED,
|
|
|
|
|
ERROR_NAME_INVALID_FRAME,
|
|
|
|
|
ERROR_NAME_INVALID_NAME,
|
|
|
|
|
ERROR_NAME_NOT_FOUND,
|
|
|
|
|
ERROR_NAME_WEBSOCKET_UNAVAILABLE
|
|
|
|
|
} from './consts.ts';
|
|
|
|
|
|
|
|
|
|
abstract class ConnEngineError extends Error {
|
|
|
|
|
abstract readonly name: string;
|
|
|
|
|
constructor(message: string, options?: { cause?: unknown }) {
|
|
|
|
|
super(message, options);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class ConnDisposedError extends ConnEngineError {
|
|
|
|
|
readonly name = ERROR_NAME_DISPOSED;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class ConnConnectionAlreadyExistsError extends ConnEngineError {
|
|
|
|
|
readonly name = ERROR_NAME_ALREADY_EXISTS;
|
|
|
|
|
readonly connection: string;
|
|
|
|
|
constructor(message: string, connection: string) {
|
|
|
|
|
super(message);
|
|
|
|
|
this.connection = connection;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class ConnConnectionNotFoundError extends ConnEngineError {
|
|
|
|
|
readonly name = ERROR_NAME_NOT_FOUND;
|
|
|
|
|
readonly connection: string;
|
|
|
|
|
constructor(message: string, connection: string) {
|
|
|
|
|
super(message);
|
|
|
|
|
this.connection = connection;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class ConnInvalidConnectionNameError extends ConnEngineError {
|
|
|
|
|
readonly name = ERROR_NAME_INVALID_NAME;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class ConnInvalidFrameError extends ConnEngineError {
|
|
|
|
|
readonly name = ERROR_NAME_INVALID_FRAME;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class ConnChannelAlreadyExistsError extends ConnEngineError {
|
|
|
|
|
readonly name = ERROR_NAME_CHANNEL_ALREADY_EXISTS;
|
|
|
|
|
readonly channel: string;
|
|
|
|
|
constructor(message: string, channel: string) {
|
|
|
|
|
super(message);
|
|
|
|
|
this.channel = channel;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class ConnChannelNotFoundError extends ConnEngineError {
|
|
|
|
|
readonly name = ERROR_NAME_CHANNEL_NOT_FOUND;
|
|
|
|
|
readonly channel: string;
|
|
|
|
|
constructor(message: string, channel: string) {
|
|
|
|
|
super(message);
|
|
|
|
|
this.channel = channel;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class ConnWebSocketUnavailableError extends ConnEngineError {
|
|
|
|
|
readonly name = ERROR_NAME_WEBSOCKET_UNAVAILABLE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function isConnDisposedError(value: unknown): value is ConnDisposedError {
|
|
|
|
|
return value instanceof Error && (value as { name?: string }).name === ERROR_NAME_DISPOSED;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function isConnConnectionAlreadyExistsError(
|
|
|
|
|
value: unknown
|
|
|
|
|
): value is ConnConnectionAlreadyExistsError {
|
|
|
|
|
return value instanceof Error && (value as { name?: string }).name === ERROR_NAME_ALREADY_EXISTS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function isConnConnectionNotFoundError(
|
|
|
|
|
value: unknown
|
|
|
|
|
): value is ConnConnectionNotFoundError {
|
|
|
|
|
return value instanceof Error && (value as { name?: string }).name === ERROR_NAME_NOT_FOUND;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function isConnInvalidConnectionNameError(
|
|
|
|
|
value: unknown
|
|
|
|
|
): value is ConnInvalidConnectionNameError {
|
|
|
|
|
return value instanceof Error && (value as { name?: string }).name === ERROR_NAME_INVALID_NAME;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function isConnInvalidFrameError(value: unknown): value is ConnInvalidFrameError {
|
|
|
|
|
return value instanceof Error && (value as { name?: string }).name === ERROR_NAME_INVALID_FRAME;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function isConnWebSocketUnavailableError(
|
|
|
|
|
value: unknown
|
|
|
|
|
): value is ConnWebSocketUnavailableError {
|
|
|
|
|
return (
|
|
|
|
|
value instanceof Error && (value as { name?: string }).name === ERROR_NAME_WEBSOCKET_UNAVAILABLE
|
|
|
|
|
);
|
|
|
|
|
}
|