UNPKG

opinionated-machine

Version:

Very opinionated DI framework for fastify, built on top of awilix

25 lines (24 loc) 850 B
import type { BuildResolver, BuildResolverOptions, DisposableResolver } from 'awilix'; declare module 'awilix' { interface ResolverOptions<T> { /** Marks a resolver as an api controller (new ApiContract-based). */ isApiController?: boolean; } } /** * Register an `AbstractApiController` subclass with the awilix DI container. * * The returned resolver does **not** set `isSSEController` or `isDualModeController`, * so `DIContext` reads its `routes` property automatically during `registerRoutes()`. * * @example * ```typescript * // In a module's resolveControllers(): * return { * userController: asApiControllerClass(UserController), * } * ``` */ export declare function asApiControllerClass<T = object>(Type: { prototype: T; }, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>;