UNPKG

reasonable-error

Version:

Create type-safe custom error classes with a specific reason + associated context.

19 lines 926 B
export declare const createErrorClass: <ReasonContextMap extends Record<string, unknown>>() => <ClassName extends string>(className: ClassName) => Record<ClassName, { new <SpecificReason extends keyof ReasonContextMap>(message: string, additionalInfo: { reason: SpecificReason; cause?: Error; } & (ReasonContextMap[SpecificReason] extends undefined ? {} : { context: ReasonContextMap[SpecificReason]; })): { readonly reason: SpecificReason; readonly context: ReasonContextMap[SpecificReason]; name: string; message: string; stack?: string; cause?: unknown; }; }> & Record<`is${ClassName}`, (value: unknown) => value is Error & (keyof ReasonContextMap extends infer T ? T extends keyof ReasonContextMap ? T extends string ? { reason: T; context: ReasonContextMap[T]; } : never : never : never)>; //# sourceMappingURL=index.d.ts.map