3.0.1 • Published 5 years ago

nest-boot v3.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

Description

A component of nestcloud. NestCloud is a nest framework micro-service solution.

中文文档

A Nest module to get configurations when the app bootstrap.

Installation

$ npm i --save nest-boot

Quick Start

Import Module

import { Module } from '@nestjs/common';
import { BootModule } from 'nest-boot';

const env = process.env.NODE_ENV;

@Module({
  imports: [BootModule.register(__dirname, `bootstrap-${env}.yml`)],
})
export class ApplicationModule {}

Yaml Config File

eg: bootstrap-development.yml.

web:
  name: example-service
  port: 3000

Usage

There are two ways to get configurations, the first, use get method:

import { Injectable } from '@nestjs/common';
import { InjectBoot, Boot } from 'nest-boot';

@Injectable()
export class TestService {
  constructor(@InjectBoot() private readonly boot: Boot) {}

  getPort() {
      return this.boot.get('web.port', 3000);
  }
}

The second, use @BootValue:

import { Injectable } from '@nestjs/common';
import { InjectBoot, Boot, DynamicBoot, BootValue } from 'nest-boot';

@Injectable()
export class TestService extends DynamicBoot {
  @BootValue('web.port', 3000)
  private readonly port: number; 
  
  constructor(
      @InjectBoot() private readonly boot: Boot
  ) {
      super(boot);
  }

  getPort() {
      return this.port;
  }
}

Get configurations with env.

nest-boot supports get configurations with env, use ${} expression, example:

web:
  serviceId: ${ SERVICE_ID || example-service }
  serviceName: ${ SERVICE_NAME || example-service }
  port: 3000

API

class BootModule

static register(path: string, filename: string): DynamicModule

Import nest boot module.

fieldtypedescription
pathstringthe config file path
filenamestringthe config filename

class Boot

get<T>(path: string, defaults?: T): T

Get configurations

fieldtypedescription
pathstringpath of configurations
defaultsanydefault value if the specific configuration is not exist

getEnv(): string

Get current NODE_ENV value, if not set, it will return 'development'.

getFilename(): string

Get the current config filename.

getConfigPath(): string

Get the current path of the config file.

getFullConfigPath(): string

Get the current full path of the config file.

Decorator

InjectBoot(): PropertyDecorator

Inject Boot instance.

BootValue(path: string, defaultValue?: any): PropertyDecorator

Set configuration to class attribute.

Stay in touch

License

NestCloud is MIT licensed.