UNPKG

opinionated-machine

Version:

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

22 lines (21 loc) 1.28 kB
import { type AwilixContainer, type NameAndRegistrationPair } from 'awilix'; import type { AbstractModule } from './AbstractModule.js'; import { DIContext, type DependencyInjectionOptions } from './DIContext.js'; import type { NestedPartial } from './configUtils.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); resetExternalDependencies(): void; abstract resolveBaseAppConfig(): Config; createTestContext(params?: CreateTestContextParams<Dependencies, Config>): Promise<DIContext<Dependencies, Config, ExternalDependencies>>; }