Files
bigcapital/packages/server-nest/src/modules/Settings/Settings.module.ts
2025-03-07 04:05:24 +02:00

40 lines
1.2 KiB
TypeScript

import { Global, Module } from '@nestjs/common';
import { SettingRepository } from './repositories/Setting.repository';
import { SettingsStore } from './SettingsStore';
import { SettingsApplicationService } from './SettingsApplication.service';
import { SaveSettingsService } from './commands/SaveSettings.service';
import { SettingsController } from './Settings.controller';
import { SETTINGS_PROVIDER } from './Settings.types';
import { GetSettingsService } from './queries/GetSettings.service';
import { ClsModule } from 'nestjs-cls';
@Global()
@Module({
imports: [
ClsModule.forFeatureAsync({
provide: SETTINGS_PROVIDER,
inject: [SettingRepository],
useFactory: (settingRepository: SettingRepository) => async () => {
const settings = new SettingsStore(settingRepository);
// Load settings from database.
await settings.load();
return settings;
},
global: true,
strict: true,
type: 'function',
}),
],
providers: [
SettingRepository,
GetSettingsService,
SettingsApplicationService,
SaveSettingsService,
],
exports: [SettingRepository],
controllers: [SettingsController],
})
export class SettingsModule {}