Skip to content

aleksandryackovlev/nestjs-etcd

Repository files navigation

npm deps Build Status codecov size

Description

Etcd3 module for Nest.

Installation

$ npm i --save nestjs-etcd

Getting Started

To register the EtcdModule in app.module.ts

import { Module } from '@nestjs/common';
import { EtcdModule} from 'nestjs-etcd';

@Module({
    imports: [
        EtcdModule.forRoot({
            name: 'client_name', // optional, default to 'default'
            hosts: `http://0.0.0.0:2379`,
        }),
    ],
})
export class AppModule {}

With Async

import { Module } from '@nestjs/common';
import { EtcdModule} from 'nestjs-etcd';

@Module({
    imports: [
        EtcdModule.forRootAsync({
                name: 'client_name', // optional, default to 'default'
                useFactory: (configService: ConfigService) => ({
                hosts: configService.get('hosts'),
            }),
            inject:[ConfigService],
        }),
    ],
})
export class AppModule {}

Module supports all the options for Etcd3 package (see https://microsoft.github.io/etcd3/interfaces/ioptions.html):

type EtcdModuleOptions = IOptions & { name?: string }

Usage

import { Injectable } from '@nestjs/common';
import { Etcd3 } from 'etcd3';
import { InjectClient } from 'nestjs-etcd';

@Injectable()
export class TestService {
    // client_name is optional for InjectClient, default to 'default'
    constructor(@InjectClient('client_name') private readonly client: Etcd3) {}
    
    find(key: string): Promise<string> {
        return this.client.get(key).string();
    }
}

Contributing

Please take a moment to read our contributing guidelines if you haven't yet done so.

CONTRIBUTING

License

MIT

About

Etcd3 module for Nest framework (node.js)

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published