Skip to content

Latest commit

 

History

History
128 lines (91 loc) · 3.74 KB

README.md

File metadata and controls

128 lines (91 loc) · 3.74 KB

NestCloud - Consul

NPM Version Package License NPM Downloads Travis Linux Coverage

Description

A NestCloud component for providing consul api based on node-consul.

Installation

$ npm i --save @nestcloud/consul consul

Quick Start

Import Module

import { Module } from '@nestjs/common';
import { ConsulModule } from '@nestcloud/consul';
import { BOOT } from '@nestcloud/common';

@Module({
  imports: [
    ConsulModule.forRootAsync({ inject: [BOOT] })
  ],
})
export class AppModule {}

Configurations

consul:
  host: localhost
  port: 8500

Usage

import { Injectable } from '@nestjs/common';
import * as Consul from 'consul';
import { InjectConsul } from '@nestcloud/consul';

@Injectable()
export class TestService {
  constructor(
    @InjectConsul() private readonly consul: Consul
  ) {
  }
}

Simple Get Consul KV

import { Injectable } from '@nestjs/common';
import { WatchKV } from '@nestcloud/consul';

@Injectable()
export class TestService {
  @WatchKV('test_key', 'yaml', {})
  private readonly config: any;
}

API

class ConsulModule

static forRoot(options: Options): DynamicModule

Import consul module.

field type description
options.host string consul host
options.port string consul port
options.secure boolean security or not
options.ca string[] certs
options.defaults any default consul config

static forRootAsync(options: Options): DynamicModule

Import consul module.

field type description
options.inject string[] BOOT

class Consul

see node-consul

Decorators

KeyValue(name: string, options?: KeyValueOptions): PropertyDecorator

Inject consul kv to the class attribute, it will update immediately when consul kv update.

field type description
name string consul key
options.type text json yaml value type
options.defaults any default value

Stay in touch

License

NestCloud is MIT licensed.