Skip to content
This repository has been archived by the owner. It is now read-only.
[Migrated to nestcloud repository]A Nest framework (node.js) module for getting config parameters when the app start running.
TypeScript JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
.eslintrc.js
.gitignore
.npmignore
.prettierrc
README.md
index.d.ts
index.js
index.ts.js
package.json
tsconfig.json
tslint.json
yarn.lock

README.md

Nest Logo

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 @nestcloud/boot

Quick Start

Import Module

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 {}

Yaml Config File

eg: bootstrap-development.yml.

web:
  name: example-service
  port: 3000

Usage

There are two ways to get configurations,

  1. 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);
  }
}
  1. Inject value:
import { Injectable } from '@nestjs/common';
import { Bootstrap, BootValue } from '@nestcloud/boot';

@Injectable()
@Bootstrap()
export class TestService {
  @BootValue('web.port', 3000)
  private readonly port: number;

  getPort() {
      return this.port;
  }
}

Get configurations with env.

The boot module 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.

field type description
path string the config file path
filename string the config filename

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

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.

Bootstrap(): ClassDecorator

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

Inject configuration to class attribute.

Stay in touch

License

NestCloud is MIT licensed.

You can’t perform that action at this time.