UNPKG

demeine

Version:

DDDD - Distributed Domain Driven Design

44 lines (43 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "DefaultEventHandler", { enumerable: true, get: function() { return DefaultEventHandler; } }); var _stringUtils = require("../utils/stringUtils"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var DefaultEventHandler = /*#__PURE__*/ function() { "use strict"; function DefaultEventHandler() { _classCallCheck(this, DefaultEventHandler); } var _proto = DefaultEventHandler.prototype; _proto.handle = function handle(aggregate, event) { var type = event.type; var key = this._extractKey(type); var funcName = "apply".concat((0, _stringUtils.capitalize)(key)); var applier = aggregate[funcName]; if (applier) { return applier.bind(aggregate)(event); } else { throw new Error("Unable to apply event ".concat(type, " || ").concat(funcName)); } }; _proto._extractKey = function _extractKey(type) { var parts = type.split("."); var filteredParts = []; for(var i = 1; i < parts.length - 1; i++){ filteredParts.push(parts[i]); } return (0, _stringUtils.camelCase)(filteredParts.join("_")); }; return DefaultEventHandler; }();