UNPKG

opinionated-machine

Version:

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

35 lines (34 loc) 2.45 kB
import type { BuildResolver, BuildResolverOptions, Constructor, DisposableResolver } from 'awilix'; import type { FunctionReturning } from 'awilix/lib/container'; import type { DependencyInjectionOptions } from './DIContext.js'; declare module 'awilix' { interface ResolverOptions<T> { public?: boolean; } } export declare function asSingletonClass<T = object>(Type: Constructor<T>, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>; export declare function asSingletonFunction<T>(fn: FunctionReturning<T>, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>; export declare function asServiceClass<T = object>(Type: Constructor<T>, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>; export declare function asUseCaseClass<T = object>(Type: Constructor<T>, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>; export declare function asRepositoryClass<T = object>(Type: Constructor<T>, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>; export declare function asControllerClass<T = object>(Type: Constructor<T>, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>; export type MessageQueueConsumerModuleOptions = { queueName: string; diOptions: DependencyInjectionOptions; }; export declare function asMessageQueueHandlerClass<T = object>(Type: Constructor<T>, mqOptions: MessageQueueConsumerModuleOptions, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>; export type EnqueuedJobWorkerModuleOptions = { queueName: string; diOptions: DependencyInjectionOptions; }; export declare function asEnqueuedJobWorkerClass<T = object>(Type: Constructor<T>, workerOptions: EnqueuedJobWorkerModuleOptions, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>; export type PeriodicJobOptions = { jobName: string; diOptions: DependencyInjectionOptions; }; export declare function asPeriodicJobClass<T = object>(Type: Constructor<T>, workerOptions: PeriodicJobOptions, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>; export type JobQueueModuleOptions = { queueName?: string; diOptions: DependencyInjectionOptions; }; export declare function asJobQueueClass<T = object>(Type: Constructor<T>, queueOptions: JobQueueModuleOptions, opts?: BuildResolverOptions<T>): BuildResolver<T> & DisposableResolver<T>;