UNPKG

opinionated-machine

Version:

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

22 lines (21 loc) 1.29 kB
import { type AwilixContainer, type NameAndRegistrationPair } from 'awilix'; import type { AbstractModule } from './AbstractModule.js'; import type { NestedPartial } from './configUtils.js'; import { type DependencyInjectionOptions, DIContext } from './DIContext.js'; export type CreateTestContextParams<Dependencies, Config extends object> = { modules?: readonly AbstractModule<unknown>[]; secondaryModules?: readonly AbstractModule<unknown>[]; diOptions?: DependencyInjectionOptions; dependencyOverrides?: NameAndRegistrationPair<Dependencies>; configOverrides?: NestedPartial<Config>; }; export declare abstract class AbstractTestContextFactory<Dependencies extends object, ExternalDependencies, Config extends object> { diContainer: AwilixContainer<Dependencies>; private readonly externalDependencies; protected configDependencyId: string; private readonly allModules; constructor(externalDependencies: ExternalDependencies, allModules: readonly AbstractModule<unknown>[], diContainer?: AwilixContainer<Dependencies>); resetExternalDependencies(): void; abstract resolveBaseAppConfig(): Config; createTestContext(params?: CreateTestContextParams<Dependencies, Config>): Promise<DIContext<Dependencies, Config, ExternalDependencies>>; }