mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
34 lines
965 B
TypeScript
34 lines
965 B
TypeScript
import type { ProtocolError, ProtocolErrorCode } from "@earendil-works/pi-protocol";
|
|
|
|
export class ServerError extends Error {
|
|
readonly code: ProtocolErrorCode;
|
|
|
|
constructor(error: ProtocolError) {
|
|
super(error.message);
|
|
this.name = "ServerError";
|
|
this.code = error.code;
|
|
}
|
|
}
|
|
|
|
export class DisconnectedError extends Error {
|
|
constructor(message = "Client is disconnected", cause?: Error) {
|
|
super(message, cause === undefined ? undefined : { cause });
|
|
this.name = "DisconnectedError";
|
|
}
|
|
}
|
|
|
|
export class ClientDisposedError extends Error {
|
|
constructor() {
|
|
super("Client is disposed");
|
|
this.name = "ClientDisposedError";
|
|
}
|
|
}
|
|
|
|
export function toError(error: unknown): Error {
|
|
return error instanceof Error ? error : new Error(String(error));
|
|
}
|
|
|
|
export function toDisconnectedError(error: unknown): DisconnectedError {
|
|
const cause = toError(error);
|
|
return cause instanceof DisconnectedError ? cause : new DisconnectedError(cause.message, cause);
|
|
}
|