@fajarnugraha37/error
Version:
Runtime-agnostic error handling library with structured errors, adapters, and validation support for Bun, Node.js, and browsers
31 lines (29 loc) • 1.16 kB
TypeScript
type Severity = "info" | "warn" | "error" | "fatal";
interface AppErrorOptions {
cause?: unknown;
data?: unknown;
tags?: string[];
severity?: Severity;
status?: number;
retryable?: boolean;
captureStack?: boolean;
}
declare class AppError extends Error {
readonly code: string;
readonly cause?: unknown;
readonly data?: unknown;
readonly status?: number;
readonly tags: readonly string[];
readonly severity: Severity;
readonly retryable: boolean;
readonly id: string;
readonly timestamp: number;
constructor(code: string, message?: string, options?: AppErrorOptions);
toJSON(): Record<string, unknown>;
}
declare function error(code: string, message?: string, options?: AppErrorOptions): AppError;
declare function wrap(err: unknown, code?: string, options?: Omit<AppErrorOptions, "cause">): AppError;
declare function fromUnknown(value: unknown): AppError;
declare function isAppError(value: unknown): value is AppError;
declare function isCode(err: unknown, code: string): boolean;
export { AppError, type AppErrorOptions, type Severity, error, fromUnknown, isAppError, isCode, wrap };