UNPKG

@vtexlab/planner-contracts

Version:

Contracts to use in an Eventual-Driven Architecture (EDA)

39 lines (38 loc) 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Message = void 0; const enums_1 = require("../utils/enums"); const transformCase_1 = require("../utils/transformCase"); const uuid_1 = require("uuid"); const context_1 = require("../decorators/context"); class Message { constructor(baseData) { var _a; this.CorrelationId = (_a = baseData.correlationId) !== null && _a !== void 0 ? _a : (0, uuid_1.v4)(); this.Timestamp = new Date(); this.Account = { Id: baseData.accountId, Name: baseData.accountName }; this.AuthToken = baseData.authToken; } static getContext() { return (0, context_1.getMessageContext)(this); } static topicName(caseType = enums_1.CaseType.KebabCase) { return `${this.getContext()}_${this.messageName(caseType)}`; } static queueName(consumerName, caseType = enums_1.CaseType.KebabCase) { return `${this.getContext()}_${consumerName}_${this.messageName(caseType)}`; } static messageName(caseType = enums_1.CaseType.KebabCase) { switch (caseType) { case enums_1.CaseType.KebabCase: return (0, transformCase_1.toKebabCase)(this.name); case enums_1.CaseType.NoCase: default: return this.name; } } } exports.Message = Message;