UNPKG

@goyaro/bresdk-mvp

Version:
74 lines (55 loc) 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _models = _interopRequireDefault(require("./models")); var _helpers = require("./helpers"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var BREHub = /*#__PURE__*/ function () { function BREHub() { _classCallCheck(this, BREHub); this.subscribers = []; } _createClass(BREHub, [{ key: "subscribe", value: function subscribe(subscriber) { this.subscribers.push(subscriber); } }, { key: "handle", value: function handle() { var _this = this; return function (event, context, callback) { var eventTypes = Object.keys(_models["default"]); var recievedEventType = event.eventType; // check if event exists in model if (eventTypes.indexOf(recievedEventType) !== -1) { // map recieved event to model, return mismatches var eventModel = _models["default"][recievedEventType]; var transformResponse = (0, _helpers.mapModel)(eventModel, event); var transformedEvent = transformResponse.data; if (transformResponse.error) { (0, _helpers.error)(callback, transformResponse.error); throw new Error(transformResponse.error); } // dispatch transformed event to subscribers for (var i = 0; i < _this.subscribers.length; i++) { _this.subscribers[i].handle(recievedEventType, transformedEvent); } // return success (0, _helpers.success)(callback, "".concat(recievedEventType, " event dispatched successfully.")); } else { // could not find event model var message = "Event of type ".concat(recievedEventType, " does not exist in the map."); (0, _helpers.error)(callback, message); throw new Error(message); } }; } }]); return BREHub; }(); exports["default"] = BREHub;