chiefy/vaulted

View on GitHub
lib/listeners.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';
var
  Vaulted = {},
  _ = require('lodash'),
  internal = require('./internal');

/**
 * @module listeners
 * @extends Vaulted
 * @desc Provides listeners for events within Vaulted
 * @private
 */

module.exports = function extend(Proto) {
  _.extend(Proto, Vaulted);
};

Vaulted.enableListeners = function enableListeners() {
  var self = this;

  self.on('init', function () {
    self.setInitialized();
  });

  self.on('unsealed', function () {
    internal.loadState(self).then(function () {
      internal.syncMounts(self);
    });
  });

  self.on('mount', function (type, namespace) {
    self.api.mountEndpoints(self.config, type, namespace);
  });

  self.on('unmount', function (namespace) {
    self.api.unmountEndpoints(namespace);
  });

};

Vaulted.disableListeners = function disableListeners(event) {
  this.removeAllListeners(event);
};