// eslint-disable-next-line @typescript-eslint/no-explicit-any export type TDecorator = (target: any) => any; interface IDecorateTargetWith { with: (...decorators: TDecorator[]) => Target; } // eslint-disable-next-line @typescript-eslint/no-explicit-any export default function decorate(target: Target): IDecorateTargetWith { return { with: (...decorators: TDecorator[]) => { decorators.forEach((decorator) => decorator(target)); return target; }, }; }