a configuration module for NestJS providing a ConfigurationService
based on node-config
npm install @homeofthings/nestjs-config
@Module({
imports: [
ConfigModule.forRoot(ConfigModule, {}),
],
})
export class AppModule {}
@Module({
imports: [
ConfigModule.forRootAsync(ConfigModule, {
imports: [], // optional
useFactory: (): Promise<ConfigModuleOptions> =>
Promise.resolve({
// provide your options
}),
inject: [], // optional inject params for useFactory method
}),
],
})
export class AppModule {}
const configService = ConfigModule.createConfigService({});
...
bootstrap();
NOTE: if you decide to combine this method with the imports into
AppModule
from above, only the options given to the first method will be taken into account
using one of the methods provided by the ConfigService
:
export declare class ConfigService {
readonly configDirectory: string;
readonly environment: string;
constructor(_opts: ConfigModuleOptions);
getConfig(key: string): object | undefined;
reloadConfig(): void;
getString(key: string, defaultValue: string): string;
getNumber(key: string, defaultValue: number): number;
getBoolean(key: string, defaultValue: boolean): boolean;
getObject(key: string, defaultValue: object): object;
// resolve path relative to config-directory
getPath(key: string, defaultValue: string): string;
getOptionalString(key: string): string | undefined;
getOptionalNumber(key: string): number | undefined;
getOptionalBoolean(key: string): boolean | undefined;
getOptionalObject(key: string): object | undefined;
// resolve path relative to config-directory
getOptionalPath(key: string): string | undefined;
}
process.on('SIGHUP', () => ConfigService.getInstance().reloadConfig());