NestCloud component for getting local configurations and environment values when the app bootstrap.
$ npm i --save @nestcloud/boot
import { Module } from '@nestjs/common';
import { BootModule } from '@nestcloud/boot';
const env = process.env.NODE_ENV;
@Module({
imports: [BootModule.register(__dirname, `bootstrap-${env}.yml`)],
})
export class ApplicationModule {}
eg: bootstrap-development.yml.
web:
name: example-service
port: 3000
There are two ways to get configurations,
- Inject Boot instance:
import { Injectable } from '@nestjs/common';
import { InjectBoot, Boot } from '@nestcloud/boot';
@Injectable()
export class TestService {
constructor(@InjectBoot() private readonly boot: Boot) {}
getPort() {
return this.boot.get('web.port', 3000);
}
}
- Inject value:
import { Injectable } from '@nestjs/common';
import { BootValue } from '@nestcloud/boot';
@Injectable()
export class TestService {
@BootValue('service.port', 3000)
private readonly port: number;
getPort() {
return this.port;
}
}
Dependency handlebars.js.
template:
process.env.SERVICE_ID = 'your-service-id';
process.env.SERVICE_NAME = 'your-service-name';
service:
id: ${{ SERVICE_ID }}
name: ${{ SERVICE_NAME }}
port: 3000
address: http://${{ service.name }}:${{ service.port }}
result:
service:
id: your-service-id
name: your-service-name
port: 3000
address: http://your-service-name:3000
Register boot module.
field | type | description |
---|---|---|
path | string | the config file path |
filename | string | the config filename |
Get configurations
field | type | description |
---|---|---|
path | string | path of configurations |
defaults | any | default value if the specific configuration is not exist |
Get current NODE_ENV value, if not set, it will return 'development'.
Get the current config filename.
Get the config file path.
Get the config file path with filename.
Inject Boot instance.
Inject configuration to class attribute.
- Author - NestCloud
NestCloud is MIT licensed.