UNPKG

@greengreystudio/server-package-nest-settings-manager

Version:
56 lines (49 loc) 1.64 kB
# server-package-nest-settings-manager This package is an adaptation of the [server-package-settings-manager](https://github.com/GreenGreyStudioOfficial/server-package-settings-manager) package for [NestJS](https://docs.nestjs.com/) ## Installation ``` bash npm install @greengreystudio/server-package-nest-settings-manager ``` ## Integration ``` ts import { ConfigModule, ConfigService } from '@nestjs/config'; import { SettingsManagerModule } from '@greengreystudio/server-package-nest-settings-manager'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true }), SettingsManagerModule.forRootAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: (configService: ConfigService) => { return { cdnUrl: configService.get<string>('SETTINGS_CDN_URL') as string, defaultConsumer: configService.get<string>( 'SETTINGS_DEFAULT_CONSUMER', ) as string, version: configService.get<string>('SETTINGS_VERSION') as string, }; }, }), ], controllers: [], providers: [], }) export class AppModule{ } ``` ## Usage ``` ts @Injectable() export class ExampleService { constructor(private readonly settingsManager: SettingsManagerService){} async exampleAsyn() { const exampleConfig = await this.settingsManager.fetchSetting('exampleConfig'); } async example() { const exampleConfig = this.settingsManager.getSetting('exampleConfig'); } async exampleWithIdAlias(id: number) { const entityConfig = this.settingsManager.getById<TSetting_Entity>('exampleConfig', id); } } ```