All files / platform/packages/unleash/src index.js

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43                                                                                     
/* istanbul ignore file */
'use strict';
const { initialize, isEnabled, getFeatureToggleDefinitions } = require('unleash-client');
const Logger = use('Logger');
 
class Unleash {
  constructor(Config) {
    this.Config = Config;
    this.instance = null;
  }
 
  initialize() {
    this.instance = initialize({
      url: this.Config.get('unleash.server'),
      appName: this.Config.get('app.name'),
    });
 
    /** Optional events */
    this.instance.on('error', console.error); // eslint-disable-line no-console
    this.instance.on('warn', console.warn); // eslint-disable-line no-console
    this.instance.on('ready', console.log); // eslint-disable-line no-console
 
    /** Metric Hooks */
    this.instance.on('registered', (clientData) => {
      Logger.info('registered %o', clientData);
    });
    this.instance.on('sent', (payload) => Logger.info('metrics bucket/payload sent %o', payload));
    this.instance.on('count', (name, enabled) =>
      Logger.info(`isEnabled(${name}) returned ${enabled}`),
    );
  }
 
  isEnabled(featureName, context) {
    return isEnabled(featureName, context);
  }
 
  getFeatureToggleDefinitions() {
    return getFeatureToggleDefinitions();
  }
}
 
module.exports = Unleash;