@qiwi/nestjs-enterprise-consul
TypeScript icon, indicating that this package has built-in type declarations

4.1.0 • Public • Published

@qiwi/nestjs-enterprise-consul

Nestjs module for working with Consul

Installation

Requires following packages to be installed

yarn add @qiwi/nestjs-enterprise-consul

Configuration

import { Module } from '@nestjs/common'
import { ConfigModule } from '@qiwi/nestjs-enterprise-config'
import { LoggerModule } from '@qiwi/nestjs-enterprise-logger'
import { ConsulModule } from '@qiwi/nestjs-enterprise-consul'

@Module({
  imports: [
    ConfigModule,
    LoggerModule,
    ConsulModule,
    // and so on
  ],
  controllers: [],
  providers: [],
})
export class AppModule {}

Config

{
  "data": {
    "name": "APP_NAME",
    "server": {
      "port": 8080,
      "host": "$host:"
    },
    "consul": {
      "host": "CONSUL_AGENT_HOST",
      "port": "CONSUL_AGENT_PORT",
      "token": "consul token",
      "tags": ["tag"]
    }
  },
  "sources": {
    "host": {
      "pipeline": "ip"
    }
  }
}

Usage

// main.ts
import { NestFactory } from '@nestjs/core'
import { AppModule } from './app.module'

async function bootstrap() {

  const app = await NestFactory.create(AppModule)
  //...
  
const consul = app.get('IConsul')
const local = config.get('local')
//...

  if (!local) {
    consul.register()
  }
}
 //...
// service.ts
@Injectable()
export class ConnectionProviderService implements IConnectionProvider {
  constructor(
    @Inject('IConsul')
    private consul: IConsul,
  ) {}

  async getConnectionParams(serviceName: string) {
    return this.consul.getConnectionParams(serviceName)
  }
}

API

ConsulModule class

Exports ConsulService with token IConsul

ConsulService class

register(opts: any): IPromise

getConnectionParams(opts: any): Promise<IConnectionParams | undefined>

field type description
IConnectionParams.host string host
IConnectionParams.port number port

getKv(opts: any): Promise <INormalizedConsulKvValue>

field type description
INormalizedConsulKvValue.createIndex number createIndex
INormalizedConsulKvValue.modifyIndex number modifyIndex
INormalizedConsulKvValue.lockIndex number lockIndex
INormalizedConsulKvValue.key string key
INormalizedConsulKvValue.flags number flags
INormalizedConsulKvValue.value string value

Docs

Readme

Keywords

Package Sidebar

Install

npm i @qiwi/nestjs-enterprise-consul

Weekly Downloads

15

Version

4.1.0

License

MIT

Unpacked Size

224 kB

Total Files

18

Last publish

Collaborators

  • antongolub
  • qiwibot