coffee-core
Version:
Coffee IT API core library
34 lines • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConsumeHandler = void 0;
const class_transformer_1 = require("class-transformer");
const common_1 = require("@nestjs/common");
class ConsumeHandler {
bindingKey;
onConsume;
messageClass;
enableLogging;
validationMiddleware;
logger = new common_1.Logger(ConsumeHandler.name);
constructor(bindingKey, onConsume, messageClass, enableLogging = true) {
this.bindingKey = bindingKey;
this.onConsume = onConsume;
this.messageClass = messageClass;
this.enableLogging = enableLogging;
}
async consume(message) {
const transformedMessage = await (0, class_transformer_1.plainToClass)(this.messageClass, message);
if (this.validationMiddleware) {
await this.validationMiddleware.handle(transformedMessage, this.bindingKey);
}
if (this.enableLogging) {
this.logger.debug(`Got an event on ${this.bindingKey} with payload: ${JSON.stringify(message, null, 2)}`);
}
await this.onConsume(transformedMessage);
}
setValidationMiddleware(middleware) {
this.validationMiddleware = middleware;
}
}
exports.ConsumeHandler = ConsumeHandler;
//# sourceMappingURL=consume-handler.js.map