sugo-actor
Version:
Actor component of SUGOS.
84 lines (62 loc) • 5.7 kB
JavaScript
/**
* Pipe emitter for modules
* @augments PipeEmitter
* @class ModulePipeEmitter
*/
;
var _Object$assign = require("@babel/runtime/core-js/object/assign");
var _Object$getPrototypeOf = require("@babel/runtime/core-js/object/get-prototype-of");
var _classCallCheck = require("@babel/runtime/helpers/classCallCheck");
var _createClass = require("@babel/runtime/helpers/createClass");
var _possibleConstructorReturn = require("@babel/runtime/helpers/possibleConstructorReturn");
var _inherits = require("@babel/runtime/helpers/inherits");
var _assertThisInitialized = require("@babel/runtime/helpers/assertThisInitialized");
var PipeEmitter = require('./pipe_emitter');
var _require = require('sugo-constants'),
PipeLevels = _require.PipeLevels;
var MODULE_LEVEL = PipeLevels.MODULE_LEVEL;
/** @lends ModulePipeEmitter */
var ModulePipeEmitter =
/*#__PURE__*/
function (_PipeEmitter) {
_inherits(ModulePipeEmitter, _PipeEmitter);
function ModulePipeEmitter(socket, moduleName, defaults) {
var _this;
_classCallCheck(this, ModulePipeEmitter);
_this = _possibleConstructorReturn(this, (ModulePipeEmitter.__proto__ || _Object$getPrototypeOf(ModulePipeEmitter)).call(this, socket));
var pipeEmit = _this.pipeEmit.bind(_assertThisInitialized(_this));
/**
* Emit event
* @param {string} event - Name of event
* @param {Object} data - Event data
* @param {Object} [options={}] - Optional settings
* @param {string[]} [options.only] - Target caller keys
*/
_this.emit = function pipingEmitWrap(event, data) {
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var _options$only = options.only,
only = _options$only === void 0 ? null : _options$only;
pipeEmit(event, data, {
only: only,
defaults: _Object$assign({}, defaults, {
level: MODULE_LEVEL,
module: moduleName
})
});
};
_this.name = moduleName;
return _this;
}
_createClass(ModulePipeEmitter, [{
key: "shouldPipe",
value: function shouldPipe(received) {
if (received.level !== MODULE_LEVEL) {// TODO Support level check
// return false
}
return received.module === this.name;
}
}]);
return ModulePipeEmitter;
}(PipeEmitter);
module.exports = ModulePipeEmitter;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtaXR0aW5nL21vZHVsZV9waXBlX2VtaXR0ZXIuanMiXSwibmFtZXMiOlsiUGlwZUVtaXR0ZXIiLCJyZXF1aXJlIiwiUGlwZUxldmVscyIsIk1PRFVMRV9MRVZFTCIsIk1vZHVsZVBpcGVFbWl0dGVyIiwic29ja2V0IiwibW9kdWxlTmFtZSIsImRlZmF1bHRzIiwicGlwZUVtaXQiLCJiaW5kIiwiZW1pdCIsInBpcGluZ0VtaXRXcmFwIiwiZXZlbnQiLCJkYXRhIiwib3B0aW9ucyIsIm9ubHkiLCJsZXZlbCIsIm1vZHVsZSIsIm5hbWUiLCJyZWNlaXZlZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OztBQUtBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsY0FBY0MsUUFBUSxnQkFBUixDQUFwQjs7ZUFDcUJBLFFBQVEsZ0JBQVIsQztJQUFkQyxVLFlBQUFBLFU7O0lBQ0FDLFksR0FBZ0JELFUsQ0FBaEJDLFk7QUFFUDs7SUFDTUMsaUI7Ozs7O0FBQ0osNkJBQWFDLE1BQWIsRUFBcUJDLFVBQXJCLEVBQWlDQyxRQUFqQyxFQUEyQztBQUFBOztBQUFBOztBQUN6QyxtSUFBTUYsTUFBTjs7QUFDQSxRQUFNRyxXQUFXLE1BQUtBLFFBQUwsQ0FBY0MsSUFBZCwrQkFBakI7QUFDQTs7Ozs7Ozs7O0FBT0EsVUFBS0MsSUFBTCxHQUFZLFNBQVNDLGNBQVQsQ0FBeUJDLEtBQXpCLEVBQWdDQyxJQUFoQyxFQUFvRDtBQUFBLFVBQWRDLE9BQWMsdUVBQUosRUFBSTtBQUFBLDBCQUN4Q0EsT0FEd0MsQ0FDdkRDLElBRHVEO0FBQUEsVUFDdkRBLElBRHVELDhCQUNoRCxJQURnRDtBQUU5RFAsZUFBU0ksS0FBVCxFQUFnQkMsSUFBaEIsRUFBc0I7QUFDcEJFLGtCQURvQjtBQUVwQlIsa0JBQVUsZUFBYyxFQUFkLEVBQWtCQSxRQUFsQixFQUE0QjtBQUNwQ1MsaUJBQU9iLFlBRDZCO0FBRXBDYyxrQkFBUVg7QUFGNEIsU0FBNUI7QUFGVSxPQUF0QjtBQU9ELEtBVEQ7O0FBV0EsVUFBS1ksSUFBTCxHQUFZWixVQUFaO0FBckJ5QztBQXNCMUM7Ozs7K0JBRVdhLFEsRUFBVTtBQUNwQixVQUFJQSxTQUFTSCxLQUFULEtBQW1CYixZQUF2QixFQUFxQyxDQUNuQztBQUNBO0FBQ0Q7O0FBQ0QsYUFBT2dCLFNBQVNGLE1BQVQsS0FBb0IsS0FBS0MsSUFBaEM7QUFDRDs7OztFQS9CNkJsQixXOztBQWtDaENpQixPQUFPRyxPQUFQLEdBQWlCaEIsaUJBQWpCIiwiZmlsZSI6ImVtaXR0aW5nL21vZHVsZV9waXBlX2VtaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vbGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQaXBlIGVtaXR0ZXIgZm9yIG1vZHVsZXNcbiAqIEBhdWdtZW50cyBQaXBlRW1pdHRlclxuICogQGNsYXNzIE1vZHVsZVBpcGVFbWl0dGVyXG4gKi9cbid1c2Ugc3RyaWN0J1xuXG5jb25zdCBQaXBlRW1pdHRlciA9IHJlcXVpcmUoJy4vcGlwZV9lbWl0dGVyJylcbmNvbnN0IHtQaXBlTGV2ZWxzfSA9IHJlcXVpcmUoJ3N1Z28tY29uc3RhbnRzJylcbmNvbnN0IHtNT0RVTEVfTEVWRUx9ID0gUGlwZUxldmVsc1xuXG4vKiogQGxlbmRzIE1vZHVsZVBpcGVFbWl0dGVyICovXG5jbGFzcyBNb2R1bGVQaXBlRW1pdHRlciBleHRlbmRzIFBpcGVFbWl0dGVyIHtcbiAgY29uc3RydWN0b3IgKHNvY2tldCwgbW9kdWxlTmFtZSwgZGVmYXVsdHMpIHtcbiAgICBzdXBlcihzb2NrZXQpXG4gICAgY29uc3QgcGlwZUVtaXQgPSB0aGlzLnBpcGVFbWl0LmJpbmQodGhpcylcbiAgICAvKipcbiAgICAgKiBFbWl0IGV2ZW50XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50IC0gTmFtZSBvZiBldmVudFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gRXZlbnQgZGF0YVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gLSBPcHRpb25hbCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IFtvcHRpb25zLm9ubHldIC0gVGFyZ2V0IGNhbGxlciBrZXlzXG4gICAgICovXG4gICAgdGhpcy5lbWl0ID0gZnVuY3Rpb24gcGlwaW5nRW1pdFdyYXAgKGV2ZW50LCBkYXRhLCBvcHRpb25zID0ge30pIHtcbiAgICAgIGNvbnN0IHtvbmx5ID0gbnVsbH0gPSBvcHRpb25zXG4gICAgICBwaXBlRW1pdChldmVudCwgZGF0YSwge1xuICAgICAgICBvbmx5LFxuICAgICAgICBkZWZhdWx0czogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdHMsIHtcbiAgICAgICAgICBsZXZlbDogTU9EVUxFX0xFVkVMLFxuICAgICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICB0aGlzLm5hbWUgPSBtb2R1bGVOYW1lXG4gIH1cblxuICBzaG91bGRQaXBlIChyZWNlaXZlZCkge1xuICAgIGlmIChyZWNlaXZlZC5sZXZlbCAhPT0gTU9EVUxFX0xFVkVMKSB7XG4gICAgICAvLyBUT0RPIFN1cHBvcnQgbGV2ZWwgY2hlY2tcbiAgICAgIC8vIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gcmVjZWl2ZWQubW9kdWxlID09PSB0aGlzLm5hbWVcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1vZHVsZVBpcGVFbWl0dGVyXG4iXX0=