Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 1x 15x 2x 2x 2x 2x 2x 3x 2x | import {
AppError,
AuthError,
DatabaseError,
NetworkError,
NotFoundError,
TimeoutError,
ValidationError,
} from "./base";
// Union type of all error types
export type DomainError =
| AppError
| NetworkError
| ValidationError
| DatabaseError
| AuthError
| NotFoundError
| TimeoutError;
// Helper to create errors
export const createError = {
app: (message: string, cause?: unknown) => new AppError({ message, cause }),
network: (message: string, statusCode?: number, url?: string) =>
new NetworkError({ message, statusCode, url }),
validation: (message: string, field?: string, errors?: Record<string, string>) =>
new ValidationError({ message, field, errors }),
database: (message: string, query?: string, code?: string) =>
new DatabaseError({ message, query, code }),
auth: (message: string, code?: string) => new AuthError({ message, code }),
notFound: (resource: string, id?: string) =>
new NotFoundError({
message: `${resource} not found${id ? `: ${id}` : ""}`,
resource,
id,
}),
timeout: (message: string, duration?: number) => new TimeoutError({ message, duration }),
};
|