@sentzunhat/zacatl
Version:
A modular, high-performance TypeScript microservice framework for Node.js, featuring layered architecture, dependency injection, and robust validation for building scalable APIs and distributed systems.
57 lines • 1.86 kB
TypeScript
import type { Optional } from '../utils/optionals';
export type HttpStatusCode = 200 | 201 | 204 | 400 | 401 | 403 | 404 | 422 | 500 | 502 | 503;
export type StatusCodeString = 'invalid';
export type ErrorCode = Optional<HttpStatusCode | StatusCodeString>;
export interface CustomErrorsArgs {
message: string;
reason?: Optional<string>;
metadata?: Optional<Record<string, unknown>>;
error?: Optional<Error>;
component?: Optional<string>;
operation?: Optional<string>;
}
export interface CustomErrorArgs {
message: string;
code?: ErrorCode;
reason?: Optional<string>;
metadata?: Optional<Record<string, unknown>>;
error?: Optional<Error>;
component?: Optional<string>;
operation?: Optional<string>;
}
export declare class CustomError extends Error {
readonly custom: boolean;
readonly code: ErrorCode;
readonly reason?: Optional<string>;
readonly metadata?: Optional<Record<string, unknown>>;
readonly error?: Optional<Error>;
readonly time: Date;
readonly id: string;
readonly correlationId: string;
readonly component?: Optional<string>;
readonly operation?: Optional<string>;
constructor({ message, code, reason, metadata, error, correlationId, component, operation, }: CustomErrorArgs & {
correlationId?: string;
});
toJSON(): {
name: string;
message: string;
code?: ErrorCode;
reason?: string;
metadata?: Record<string, unknown>;
component?: string;
operation?: string;
error?: {
name: string;
message: string;
stack?: string;
};
time: string;
id: string;
correlationId: string;
stack?: string | undefined;
custom: boolean;
};
toString(): string;
}
//# sourceMappingURL=custom.d.ts.map