@htcloud/boot
v0.0.6
Published
NestCloud component for getting local configurations and environment values when the app bootstrap.
Downloads
1
Readme
Description
NestCloud component for getting local configurations and environment values when the app bootstrap.
Installation
$ npm i --save @nestcloud/boot
Quick 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: 3000
Usage
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:3000
API
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.