remote-config-client

1.2.1 • Public • Published

Remote Config Client

Implements a Remote Config Client for NodeJS, with cache support

CircleCI

Installation

Using npm:

npm install --save remote-config-client

Usage

To use this client, instance it as

const remoteConfigClient = require('remote-config-client-node')({
  application: 'APPLICATION-NAME',
  cache: <ioredis or node-redis instance>,
  environment: 'ENV',
  host: 'http://HOSTNAME',
  httpClient: <object with functions>
  password: 'REMOTE-CONFIG-HTTP-BASIC-PASSWORD',
  username: 'REMOTE-CONFIG-HTTP-BASIC-USERNAME'
})

Where:

  • application: Application (hello-world, chubaca...)
  • cache: Cache instance to be used (supported: ioredis and node-redis) (optional)
  • environment: Enviroment (test, int, staging, production...)
  • host: Remote config host url (http://remote-config.internal)
  • httpClient: Object which implements a custom http client (optional)
  • password: HTTP Basic Auth Password
  • username: HTTP Basic Auth Username

Available methods

get (string clientId, string config = null) : object

Returns client's config. If a value is passed on config, it will return only this value.

del (string clientId) : integer

Purges cache data for the specified client. Returns the number of deleted keys.

getSettings () : object

Returns remote-config settings object (passed when it was instantiated)

Custom HTTP Client

Internally, this lib uses axios to execute HTTP requests. If you want to implement a custom http client yourself, create one that respect the same method signatures and outputs as axios.

For instance, only axios.get () is used. It should use the following signature:

  • Method: get(url : string, { auth: { username : string, password : string } } : object)
  • Output: { status : integer, data : object }

For more info, check axios documentation.

Readme

Keywords

none

Package Sidebar

Install

npm i remote-config-client

Weekly Downloads

4

Version

1.2.1

License

ISC

Unpacked Size

265 kB

Total Files

34

Last publish

Collaborators

  • leandrodaf
  • brunoluiz
  • danilo.bondezan