UNPKG

bandiera-client

Version:

Bandiera is a simple, stand-alone feature flagging service that is not tied to any existing web framework or language. This is a client for talking to the web service.

153 lines (106 loc) 3.89 kB
Bandiera Client (Node.js) ========================= This is a client for talking to the [Bandiera][bandiera] feature flagging service from a [Node.js][node] application. This client currently only implements the read methods of the [v2 Bandiera API][bandiera-api]. [![NPM version][shield-npm]][info-npm] [![Node.js version support][shield-node]][info-node] [![Build status][shield-build]][info-build] [![Dependencies][shield-dependencies]][info-dependencies] [![MIT licensed][shield-license]][info-license] Installation ------------ ```sh npm install bandiera-client ``` or add `bandiera-client` to your `package.json` file. Usage ----- Create an instance of the bandiera client: ```js var bandiera = require('bandiera-client'); var client = bandiera.createClient('http://your-bandiera-server.com'); ``` Each method of the client requires a callback. These callbacks accept two arguments, the first is an error object or `null` the second contains the response. In the examples below, `params` is an object containing query parameters to send as part of the request to Bandiera. This argument is optional in all of the client methods. See the [API documentation][bandiera-api] for available parameters. Get features for all groups: ```js client.getAll(params, function (error, groups) { /* groups == { group_name: { feature_name: Boolean, ... }, ... } */ }); // or client.getAll(function (error, groups) { // ... }); ``` Get features for a group: ```js client.getFeaturesForGroup('group_name', params, function (error, features) { /* features == { feature_name: Boolean, ... } */ }); // or client.getFeaturesForGroup('group_name', function (error, features) { // ... }); ``` Get an individual feature: ```js client.getFeature('group_name', 'feature_name', params, function (error, feature) { /* feature = Boolean */ }); // or client.getFeature('group_name', 'feature_name', function (error, feature) { // ... }); ``` Options ------- The Node.js Bandiera client also accepts options in construction which allow you to tweak the client's behaviour: ```js var client = bandiera.createClient('http://your-bandiera-server.com', { // options go here }); ``` ### `logger.debug` (function) A logging function which will be called with debug messages. This should accept the same arguments as `console.log`. Defaults to an empty function. ### `logger.warn` (function) A logging function which will be called with warning messages. This should accept the same arguments as `console.log`. Defaults to an empty function. ### `timeout` (number) A timeout (in milliseconds) after which an API request should fail. Defaults to `400`. Contributing ------------ If you would like to contribute please make sure that the tests pass and that the code lints successfully. ```sh make lint test ``` License ------- Copyright © 2018 Springer Nature. Node Bandiera client is licensed under the [MIT License][info-license]. [bandiera]: https://github.com/nature/bandiera [bandiera-api]: https://github.com/nature/bandiera/wiki/API-Documentation [node]: http://nodejs.org [info-dependencies]: https://gemnasium.com/springernature/bandiera-client-node [info-license]: LICENSE [info-node]: package.json [info-npm]: https://www.npmjs.com/package/bandiera-client [info-build]: https://travis-ci.org/springernature/bandiera-client-node [shield-dependencies]: https://img.shields.io/gemnasium/springernature/bandiera-client-node.svg [shield-license]: https://img.shields.io/badge/license-MIT-blue.svg [shield-node]: https://img.shields.io/badge/node.js%20support-0.10–6-brightgreen.svg [shield-npm]: https://img.shields.io/npm/v/bandiera-client.svg [shield-build]: https://img.shields.io/travis/springernature/bandiera-client-node/master.svg