@qiwi/nestjs-enterprise-consul
v4.1.0
Published
Nestjs module for working with Consul
Downloads
15
Readme
@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