UNPKG

opinionated-machine

Version:

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

34 lines 1.31 kB
import { createContainer } from 'awilix'; import { DIContext } from './DIContext.js'; export class AbstractTestContextFactory { diContainer; externalDependencies; configDependencyId = 'config'; // override in subclass if different allModules; constructor(externalDependencies, allModules, diContainer) { this.externalDependencies = externalDependencies; this.allModules = allModules; this.diContainer = diContainer ?? createContainer({ injectionMode: 'PROXY', }); } resetExternalDependencies() { // Override if necessary } async createTestContext(params = {}) { const context = new DIContext(this.diContainer, params.diOptions ?? {}, this.resolveBaseAppConfig()); const modules = params.modules ?? this.allModules; context.registerDependencies({ dependencyOverrides: params.dependencyOverrides, configOverrides: params.configOverrides, modules, secondaryModules: params.secondaryModules, configDependencyId: this.configDependencyId, }, this.externalDependencies, false); await context.init(); return context; } } //# sourceMappingURL=AbstractTestContextFactory.js.map