@chassisjs/hermes
Version:
Production-Ready TypeScript Outbox Pattern
40 lines (39 loc) • 1.36 kB
TypeScript
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 };