Squashed 'src/pi/' content from commit d981de122

git-subtree-dir: src/pi
git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
2026-09-14 10:21:58 -04:00
commit 497034b682
1669 changed files with 397627 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
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);
}