Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skunight/nestjs-etcd3
https://github.com/skunight/nestjs-etcd3
Last synced: 10 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/skunight/nestjs-etcd3
- Owner: skunight
- License: mit
- Created: 2019-07-26T07:08:26.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-09T19:49:56.000Z (almost 2 years ago)
- Last Synced: 2023-08-24T00:34:22.812Z (about 1 year ago)
- Language: TypeScript
- Size: 906 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Nestjs Etcd3
Etcd3 for NestJs.
### Installation
**Yarn**
```bash
yarn add nestjs-etcd3
```**NPM**
```bash
npm install nestjs-etcd3 --save
```### Getting Started
Let's register the EtcdModule in `app.module.ts````typescript
import { Module } from '@nestjs/common'
import { EtcdModule} from 'nestjs-etcd3'@Module({
imports: [
EtcdModule.root({
hosts: 'http://127.0.0.1:2379',
}),
],
})
export class AppModule {}
```
EtcdService Api
```
getClient(namespace?:string): NameSpace //get a etcd client
watch(key:string): Observable //return a Observable
```
Options
```typescript
interface EtcdModuleOptions {
/**
* Optional client cert credentials for talking to etcd. Describe more
* {@link https://coreos.com/etcd/docs/latest/op-guide/security.html here},
* passed into the createSsl function in GRPC
* {@link https://grpc.io/grpc/node/grpc.credentials.html#.createSsl__anchor here}.
*/
credentials?: {
rootCertificate: Buffer;
privateKey?: Buffer;
certChain?: Buffer;
};
/**
* Internal options to configure the GRPC client. These are channel options
* as enumerated in their [C++ documentation](https://grpc.io/grpc/cpp/group__grpc__arg__keys.html).
* For example:
*
* ```js
* const etcd = new Etcd3({
* // ...
* grpcOptions: {
* 'grpc.http2.max_ping_strikes': 3,
* },
* })
* ```
*/
grpcOptions?: ChannelOptions;
/**
* Etcd password auth, if using.
*/
auth?: {
username: string;
password: string;
};
/**
* A list of hosts to connect to. Hosts should include the `https?://` prefix.
*/
hosts: string[] | string;
/**
* Duration in milliseconds to wait while connecting before timing out.
* Defaults to 30 seconds.
*/
dialTimeout?: number;
/**
* Backoff strategy to use for connecting to hosts. Defaults to an
* exponential strategy, starting at a 500 millisecond
* retry with a 30 second max.
*/
backoffStrategy?: IBackoffStrategy;
/**
* Whether, if a query fails as a result of a primitive GRPC error, to retry
* it on a different server (provided one is available). This can make
* service disruptions less-severe but can cause a domino effect if a
* particular operation causes a failure that grpc reports as some sort of
* internal or network error.
*
* Defaults to false.
*/
retry?: boolean;
}
```
That's it!