UNPKG

@chassisjs/hermes

Version:

Production-Ready TypeScript Outbox Pattern

40 lines (39 loc) 1.36 kB
declare enum HermesErrorCode { Assertion = "Assertion", NotSupportedMongoVersion = "NotSupportedMongoVersion" } type HermesErrorDetails<T extends Record<string, unknown> = Record<string, never>> = { [K in keyof T]: T[K]; }; declare abstract class HermesError<T extends Record<string, unknown> = Record<string, never>, Code extends string = HermesErrorCode> extends Error { code: Code; details?: HermesErrorDetails<T> | undefined; constructor(code: Code, details?: HermesErrorDetails<T> | undefined, message?: string); } declare class AssertionError extends HermesError<{ forKey?: string; forValue?: any; }> { details: HermesErrorDetails<{ forKey?: string; forValue?: any; }>; constructor(details: HermesErrorDetails<{ forKey?: string; forValue?: any; }>, message?: string); } declare class NotSupportedMongoVersionError extends HermesError<{ supportedVersions: number[]; currentVersion: string; }> { details?: HermesErrorDetails<{ supportedVersions: number[]; currentVersion: string; }> | undefined; constructor(details?: HermesErrorDetails<{ supportedVersions: number[]; currentVersion: string; }> | undefined, message?: string); } export { AssertionError, HermesError, HermesErrorCode, NotSupportedMongoVersionError };