0.7.5 • Published 4 years ago

@nestcfork/boot v0.7.5

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

NestCloud - Boot

Description

NestCloud component for getting local configurations and environment values when the app bootstrap.

Installation

$ npm i --save @nestcfork/boot

Quick Start

Import Module

import { Module } from '@nestjs/common';
import { BootModule } from '@nestcfork/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.

web:
  name: example-service
  port: 3000

Usage

There are two ways to get your config data,

  1. Inject Boot instance:
import { Injectable, OnModuleInit } from '@nestjs/common';
import { InjectBoot, Boot } from '@nestcfork/boot';

@Injectable()
export class ConfigService implements OnModuleInit {
  constructor(
    @InjectBoot() private readonly boot: Boot
  ) {}

  onModuleInit() {
      const port = this.boot.get<number>('service.port', 3000);
  }
}
  1. Inject value:
import { Injectable } from '@nestjs/common';
import { BootValue } from '@nestcfork/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.

fieldtypedescription
options.filePathstringthe config file path

class Boot

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

Get configurations

fieldtypedescription
pathstringpath of configurations
defaultsanydefault 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

License

NestCloud is MIT licensed.