fd6e2a9ca5
* fix integration test * fix: enable DI for FeatureOptInService * create containers/FeaturesRepository.ts * refactor: convert FeatureOptInService and FeaturesRepository to moduleLoader pattern - Create feature-specific tokens in feature-opt-in/di/tokens.ts and flags/di/tokens.ts - Update modules to use bindModuleToClassOnToken for type-safe dependency injection - Simplify containers to use moduleLoader.loadModule() for automatic dependency loading - Import feature-specific tokens in central tokens.ts using spread operator Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * refactor: rename FeatureOptInServiceInterface to IFeatureOptInService Follow the codebase convention of using 'I' prefix for interface files and names. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * fix: export featuresRepositoryModule for backward compatibility The FeaturesRepository module was refactored to use moduleLoader pattern but AvailableSlots.ts still imports featuresRepositoryModule. This adds the export to maintain backward compatibility. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
12 lines
552 B
TypeScript
12 lines
552 B
TypeScript
import type { IFeatureOptInService } from "@calcom/features/feature-opt-in/services/IFeatureOptInService";
|
|
|
|
import { createContainer } from "../di";
|
|
import { moduleLoader as featureOptInServiceModuleLoader } from "../modules/FeatureOptInService";
|
|
|
|
const featureOptInServiceContainer = createContainer();
|
|
|
|
export function getFeatureOptInService(): IFeatureOptInService {
|
|
featureOptInServiceModuleLoader.loadModule(featureOptInServiceContainer);
|
|
return featureOptInServiceContainer.get<IFeatureOptInService>(featureOptInServiceModuleLoader.token);
|
|
}
|