Files
kandev/apps/web/lib/chat/message-send-error.ts
2026-09-22 13:20:58 +01:00

35 lines
1.1 KiB
TypeScript

export type MessageSendErrorCode =
| "connection-unavailable"
| "no-active-session"
| "session-unavailable"
| "plan-comment-migration-pending"
| "plan-comments-changed"
| "preview-feedback-changed"
| "primary-session-changed"
| "late-answer-admission-failed";
export class MessageSendError extends Error {
readonly code: MessageSendErrorCode;
constructor(code: MessageSendErrorCode, message: string) {
super(message);
this.name = "MessageSendError";
this.code = code;
}
}
export function isMessageSendError(error: unknown): error is MessageSendError {
if (!(error instanceof Error) || error.name !== "MessageSendError") return false;
const code = (error as Error & { code?: unknown }).code;
return (
code === "connection-unavailable" ||
code === "no-active-session" ||
code === "session-unavailable" ||
code === "plan-comment-migration-pending" ||
code === "plan-comments-changed" ||
code === "preview-feedback-changed" ||
code === "primary-session-changed" ||
code === "late-answer-admission-failed"
);
}