@htcloud/boot
v0.0.6
Published
NestCloud component for getting local configurations and environment values when the app bootstrap.
Readme
Description
NestCloud component for getting local configurations and environment values when the app bootstrap.
Installation
$ npm i --save @nestcloud/bootQuick Start
Import Module
import { Module } from '@nestjs/common';
import { BootModule } from '@nestcloud/boot';
import * as path from 'path';
@Module({
imports: [
BootModule.forRoot({
filePath: path.resolve(__dirname, 'config.yaml'),
}),
],
})
export class AppModule {}Configurations
Boot module will load config.yaml, config.${env}.yaml two files.
优先获取当前env的值
web:
name: example-service
port: 3000Usage
There are two ways to get your config data,
- Inject Boot instance:
import { Injectable, OnModuleInit } from '@nestjs/common';
import { InjectBoot, Boot } from '@nestcloud/boot';
@Injectable()
export class ConfigService implements OnModuleInit {
constructor(
@InjectBoot() private readonly boot: Boot
) {}
onModuleInit() {
const port = this.boot.get<number>('service.port', 3000);
}
}- Inject value:
import { Injectable } from '@nestjs/common';
import { BootValue } from '@nestcloud/boot';
@Injectable()
export class ConfigService {
@BootValue('service.port', 3000)
private readonly port: number;
}Template Compile.
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:3000API
class BootModule
static forRoot(options: BootOptions): DynamicModule
Register boot module.
| field | type | description | | :--------------- | :------ | :----------------------- | | options.filePath | string | the config file path |
class Boot
get<T>(path?: string, defaults?: T): T
Get configurations
| field | type | description | | :------- | :----- | :------------------------------------------------------- | | path | string | path of configurations | | defaults | any | default value if the specific configuration is not exist |
Decorators
InjectBoot(): PropertyDecorator
Inject Boot instance.
BootValue(path?: string, defaultValue?: any): PropertyDecorator
Inject configuration to class attribute.
Stay in touch
- Author - NestCloud
License
NestCloud is MIT licensed.
