HomeOfThings - Config for NestJs
a configuration module for NestJS providing a ConfigurationService
based on node-config
installation
npm install @homeofthings/nestjs-config
quick start
AppModule
by providing options synchronously
import module in @Module({
imports: [
ConfigModule.forRoot(ConfigModule, {}),
],
})
export class AppModule {}
AppModule
by providing options asynchronously
import module in @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 {}
using for bootstrapping
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
read configuration values
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;
}
reload configuration on SIGHUP
process.on('SIGHUP', () => ConfigService.getInstance().reloadConfig());