返回 AiToEarn
config-editor.module.ts
根目录 / project / aitoearn-backend / libs / config-editor / src / config-editor.module.ts
1 import type { DynamicModule } from '@nestjs/common'
2 import { Module } from '@nestjs/common'
3 import { RouterModule } from '@nestjs/core/router'
4 import { ConfigEditorConfig, ConfigEditorModuleOptions } from './config-editor.config'
5 import { ConfigEditorController } from './config-editor.controller'
6 import { ConfigEditorService } from './config-editor.service'
7 import { ConfigRestartService } from './config-restart.service'
8
9 @Module({})
10 export class ConfigEditorModule {
11 static forRoot<T>(options: ConfigEditorModuleOptions<T>): DynamicModule {
12 const config = new ConfigEditorConfig(options)
13 return {
14 module: ConfigEditorModule,
15 imports: [
16 RouterModule.register([
17 {
18 path: config.routePrefix,
19 module: ConfigEditorModule,
20 },
21 ]),
22 ],
23 controllers: [ConfigEditorController],
24 providers: [
25 {
26 provide: ConfigEditorConfig,
27 useValue: config,
28 },
29 ConfigEditorService,
30 ConfigRestartService,
31 ],
32 exports: [ConfigEditorService, ConfigRestartService],
33 }
34 }
35 }
36
36 lines TYPESCRIPT