UNPKG

sugo-actor

Version:
84 lines (62 loc) 5.7 kB
/** * Pipe emitter for modules * @augments PipeEmitter * @class ModulePipeEmitter */ 'use strict'; 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=