Skip to content

6.1 config factory

wiki[bot] edited this page Aug 23, 2026 · 1 revision

6.1. Config-Factory Module

A NestJS module that registers configuration providers, typically used with the @CacheReturnValue decorator.

Import

import { ConfigFactoryModule } from '@triplef/config-factory/config-factory';

Interface

interface ConfigFactoryOptions {
  global?: boolean;
  providers?: Array<Provider>;
}

Options

Option Type Default Description
global boolean false If true, makes all providers available throughout the application without explicit import
providers Array<Provider> [] Array of NestJS providers (typically services with @Injectable()) to register

Usage

Basic Setup

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:

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:

@Injectable()
export class UserService {
  constructor(
    private readonly appConfig: AppConfigService,
    private readonly dbConfig: DatabaseConfigService,
  ) {}
}

Warning

If no providers are provided, a console warning is issued:

ConfigFactoryModule.forRoot({}) 
// Warns: "[ConfigFactoryModule] No providers registered."

See Also

Clone this wiki locally