mediatr-ts
Version:
Mimic the famous MediatR csharp library see: (https://github.com/jbogard/MediatR)
22 lines • 905 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var index_js_1 = require("../models/mappings/index.js");
/**
* Decorate the requestHandler with this attribute
*
* @param value The request type
*/
var requestHandler = function (value) {
return function (target) {
var existingTypeMappings = index_js_1.typeMappings.requestHandlers.getAll().filter(function (x) { return x.requestClass === value; });
if (existingTypeMappings.length > 0) {
throw new Error("Request handler for ".concat(value.name, " has been defined twice. Make sure you only have one @requestHandler decorator for each request type."));
}
index_js_1.typeMappings.requestHandlers.add({
requestClass: value,
handlerClass: target
});
};
};
exports.default = requestHandler;
//# sourceMappingURL=requestHandler.attribute.js.map