@final-hill/decorator-contracts
Version:
Code Contracts for TypeScript and ECMAScript classes
7 lines (6 loc) • 615 B
text/typescript
import { Contracted } from './Contracted.mjs';
import type { FeatureDecoratorContext } from './types.mjs';
export type RescueHandler<This extends Contracted> = (self: This, error: unknown, args: any[], retry: (this: This, ...args: any[]) => any) => void;
export type RescueDecorator = <This extends Contracted>(handler: RescueHandler<This>) => (value: unknown, context: FeatureDecoratorContext) => void;
export declare const rescue: RescueDecorator;
export declare const applyRescueHandler: (descriptorType: "get" | "set" | "func", instance: Contracted, propertyKey: PropertyKey, error: unknown, args: any) => any;