# 6.1. Config-Factory Module A NestJS module that registers configuration providers, typically used with the `@CacheReturnValue` decorator. ## Import ```typescript import { ConfigFactoryModule } from '@triplef/config-factory/config-factory'; ``` ## Interface ```typescript interface ConfigFactoryOptions { global?: boolean; providers?: Array; } ``` ### Options | Option | Type | Default | Description | |--------|------|---------|-------------| | `global` | `boolean` | `false` | If `true`, makes all providers available throughout the application without explicit import | | `providers` | `Array` | `[]` | Array of NestJS providers (typically services with `@Injectable()`) to register | ## Usage ### Basic Setup ```typescript import { Module } from '@nestjs/common'; import { ConfigFactoryModule } from '@triplef/config-factory/config-factory'; import { AppConfigService } from './app-config.service'; @Module({ imports: [ ConfigFactoryModule.forRoot({ providers: [AppConfigService], }), ], }) export class AppModule {} ``` ### Global Configuration For application-wide config services, use `global: true`: ```typescript import { Module } from '@nestjs/common'; import { ConfigFactoryModule } from '@triplef/config-factory/config-factory'; import { AppConfigService } from './app-config.service'; import { DatabaseConfigService } from './database-config.service'; import { CacheConfigService } from './cache-config.service'; @Module({ imports: [ ConfigFactoryModule.forRoot({ global: true, providers: [ AppConfigService, DatabaseConfigService, CacheConfigService, ], }), ], }) export class AppModule {} ``` With `global: true`, any service can inject these config services without importing the module: ```typescript @Injectable() export class UserService { constructor( private readonly appConfig: AppConfigService, private readonly dbConfig: DatabaseConfigService, ) {} } ``` ### Warning If no providers are provided, a console warning is issued: ```typescript ConfigFactoryModule.forRoot({}) // Warns: "[ConfigFactoryModule] No providers registered." ``` ## See Also - [6.2. Cache Return Value](6.2-cache-return-value.md) - Decorator for caching config values