Negligible Participation Metric

    etcd-client
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.2 • Public • Published

    etcd-client

    Overview

    The purpose of this module is to allow a developer to communicate with an etcd service in a promisified fashion.

    Getting Started

    After installing the module, include it as part of your Typescript or Javascript project.

    The module exposes a class etcd and two Typescript interfaces EtcdRequestObject and EtcdResponseObj. To get started, create a new etcd object passing it a hostname and optional port. The default value for port is 2379.

    // Typescript inclusion
    import {etcd} from 'etcd-client'
    let etcdService = new etcd('10.0.0.12');
    
    // Javascript
    var etcdModule = require('etcd-client');
    var etcdService = new etcdModule.etcd('10.0.0.12');
    

    To send a request off to the service use the request() method of the etcd class. The request method takes a type EtcdRequestObject.

    interface EtcdRequestObject{
        key: string;
        method: string;
        params: string;
        body: any;
    }
    
    Parameter Description
    body The data which is passed as part of the HTTP request to the etcd service.
    method The HTTP verb (GET, POST, etc.).
    params A URL encoded set of GET properties to append to the request URL.
    body The data to pass along with the HTTP request.

    The request method will then build a new HTTP request with the provided information and return a promise that will resolve when a response is returned from the etcd service. The promise will not resolve until all data is received. In other words, this method takes care of monitoring all of the NodeJS specific socket and buffer events.

    var reqParams = {..};
    etcdService.request(reqParams)
        .then(result => { // Process response. });
    

    The result of the promise will be of type EtcdResponseObj.

    interface EtcdResponseObj{
        status: number;
        body: any;
        headers: any;
    };
    
    Parameter Description
    status The HTTP status number recieved from the etcd service response.
    body The body of the etcd service response.
    headers The headers returned form the etcd service.

    Ideas & Contributions

    As a next step in development it would be really nice to create helper methods that model the etcdctl commands. If you have an idea of what could improve this module please post it as an issue on the github repo.

    Install

    npm i etcd-client

    DownloadsWeekly Downloads

    2

    Version

    0.1.2

    License

    MIT

    Last publish

    Collaborators

    • eric321