chore(vendor): import pi 0.85.1
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
34
third_party/pi/packages/client/src/errors.ts
vendored
Normal file
34
third_party/pi/packages/client/src/errors.ts
vendored
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user