sugo-actor
Version:
Actor component of SUGOS.
77 lines (56 loc) • 5.08 kB
JavaScript
/**
* Pipe Emitter for actors
* @class ActorPipeEmitter
*/
;
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 ACTOR_LEVEL = PipeLevels.ACTOR_LEVEL;
/** @lends ActorPipeEmitter */
var ActorPipeEmitter =
/*#__PURE__*/
function (_PipeEmitter) {
_inherits(ActorPipeEmitter, _PipeEmitter);
function ActorPipeEmitter(socket, defaults) {
var _this;
_classCallCheck(this, ActorPipeEmitter);
_this = _possibleConstructorReturn(this, (ActorPipeEmitter.__proto__ || _Object$getPrototypeOf(ActorPipeEmitter)).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: ACTOR_LEVEL
})
});
};
return _this;
}
_createClass(ActorPipeEmitter, [{
key: "shouldPipe",
value: function shouldPipe(received) {
return !received.module || received.level === ACTOR_LEVEL;
}
}]);
return ActorPipeEmitter;
}(PipeEmitter);
module.exports = ActorPipeEmitter;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtaXR0aW5nL2FjdG9yX3BpcGVfZW1pdHRlci5qcyJdLCJuYW1lcyI6WyJQaXBlRW1pdHRlciIsInJlcXVpcmUiLCJQaXBlTGV2ZWxzIiwiQUNUT1JfTEVWRUwiLCJBY3RvclBpcGVFbWl0dGVyIiwic29ja2V0IiwiZGVmYXVsdHMiLCJwaXBlRW1pdCIsImJpbmQiLCJlbWl0IiwicGlwaW5nRW1pdFdSYXAiLCJldmVudCIsImRhdGEiLCJvcHRpb25zIiwib25seSIsImxldmVsIiwicmVjZWl2ZWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUlBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsY0FBY0MsUUFBUSxnQkFBUixDQUFwQjs7ZUFDdUJBLFFBQVEsZ0JBQVIsQztJQUFmQyxVLFlBQUFBLFU7O0lBQ0FDLFcsR0FBZ0JELFUsQ0FBaEJDLFc7QUFFUjs7SUFDTUMsZ0I7Ozs7O0FBQ0osNEJBQWFDLE1BQWIsRUFBcUJDLFFBQXJCLEVBQStCO0FBQUE7O0FBQUE7O0FBQzdCLGlJQUFNRCxNQUFOOztBQUNBLFFBQU1FLFdBQVcsTUFBS0EsUUFBTCxDQUFjQyxJQUFkLCtCQUFqQjtBQUNBOzs7Ozs7Ozs7QUFPQSxVQUFLQyxJQUFMLEdBQVksU0FBU0MsY0FBVCxDQUF5QkMsS0FBekIsRUFBZ0NDLElBQWhDLEVBQW9EO0FBQUEsVUFBZEMsT0FBYyx1RUFBSixFQUFJO0FBQUEsMEJBQ3RDQSxPQURzQyxDQUN0REMsSUFEc0Q7QUFBQSxVQUN0REEsSUFEc0QsOEJBQy9DLElBRCtDO0FBRTlEUCxlQUFTSSxLQUFULEVBQWdCQyxJQUFoQixFQUFzQjtBQUNwQkUsa0JBRG9CO0FBRXBCUixrQkFBVSxlQUFjLEVBQWQsRUFBa0JBLFFBQWxCLEVBQTRCO0FBQ3BDUyxpQkFBT1o7QUFENkIsU0FBNUI7QUFGVSxPQUF0QjtBQU1ELEtBUkQ7O0FBVjZCO0FBbUI5Qjs7OzsrQkFFV2EsUSxFQUFVO0FBQ3BCLGFBQU8sQ0FBQ0EsU0FBU0MsTUFBVixJQUFxQkQsU0FBU0QsS0FBVCxLQUFtQlosV0FBL0M7QUFDRDs7OztFQXhCNEJILFc7O0FBMkIvQmlCLE9BQU9DLE9BQVAsR0FBaUJkLGdCQUFqQiIsImZpbGUiOiJlbWl0dGluZy9hY3Rvcl9waXBlX2VtaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vbGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQaXBlIEVtaXR0ZXIgZm9yIGFjdG9yc1xuICogQGNsYXNzIEFjdG9yUGlwZUVtaXR0ZXJcbiAqL1xuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IFBpcGVFbWl0dGVyID0gcmVxdWlyZSgnLi9waXBlX2VtaXR0ZXInKVxuY29uc3QgeyBQaXBlTGV2ZWxzIH0gPSByZXF1aXJlKCdzdWdvLWNvbnN0YW50cycpXG5jb25zdCB7IEFDVE9SX0xFVkVMIH0gPSBQaXBlTGV2ZWxzXG5cbi8qKiBAbGVuZHMgQWN0b3JQaXBlRW1pdHRlciAqL1xuY2xhc3MgQWN0b3JQaXBlRW1pdHRlciBleHRlbmRzIFBpcGVFbWl0dGVyIHtcbiAgY29uc3RydWN0b3IgKHNvY2tldCwgZGVmYXVsdHMpIHtcbiAgICBzdXBlcihzb2NrZXQpXG4gICAgY29uc3QgcGlwZUVtaXQgPSB0aGlzLnBpcGVFbWl0LmJpbmQodGhpcylcbiAgICAvKipcbiAgICAgKiBFbWl0IGV2ZW50XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50IC0gTmFtZSBvZiBldmVudFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gRXZlbnQgZGF0YVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gLSBPcHRpb25hbCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IFtvcHRpb25zLm9ubHldIC0gVGFyZ2V0IGNhbGxlciBrZXlzXG4gICAgICovXG4gICAgdGhpcy5lbWl0ID0gZnVuY3Rpb24gcGlwaW5nRW1pdFdSYXAgKGV2ZW50LCBkYXRhLCBvcHRpb25zID0ge30pIHtcbiAgICAgIGNvbnN0IHsgb25seSA9IG51bGwgfSA9IG9wdGlvbnNcbiAgICAgIHBpcGVFbWl0KGV2ZW50LCBkYXRhLCB7XG4gICAgICAgIG9ubHksXG4gICAgICAgIGRlZmF1bHRzOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0cywge1xuICAgICAgICAgIGxldmVsOiBBQ1RPUl9MRVZFTFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBzaG91bGRQaXBlIChyZWNlaXZlZCkge1xuICAgIHJldHVybiAhcmVjZWl2ZWQubW9kdWxlIHx8IChyZWNlaXZlZC5sZXZlbCA9PT0gQUNUT1JfTEVWRUwpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBBY3RvclBpcGVFbWl0dGVyXG4iXX0=