Something went wrong. Try again.
Something went wrong. Try again.
1.2 kB · 53 lines
TypeScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354export const EXIT = { OK: 0, GENERIC: 1, AUTH: 2, NOT_FOUND: 3, CONFLICT: 4, PERMISSION: 5, TIMEOUT: 6,} as const;
export type ExitCode = (typeof EXIT)[keyof typeof EXIT];
export class TangleError extends Error { constructor( message: string, public readonly code: ExitCode, public readonly errorName: string, ) { super(message); this.name = "TangleError"; }}
export class AuthError extends TangleError { constructor(message: string) { super(message, EXIT.AUTH, "AuthError"); }}export class NotFoundError extends TangleError { constructor(message: string) { super(message, EXIT.NOT_FOUND, "NotFoundError"); }}export class ConflictError extends TangleError { constructor(message: string) { super(message, EXIT.CONFLICT, "ConflictError"); }}export class PermissionError extends TangleError { constructor(message: string) { super(message, EXIT.PERMISSION, "PermissionError"); }}export class TimeoutError extends TangleError { constructor(message: string) { super(message, EXIT.TIMEOUT, "TimeoutError"); }}export class ValidationError extends TangleError { constructor(message: string) { super(message, EXIT.GENERIC, "ValidationError"); }}