UNPKG

@vtexlab/planner-contracts

Version:

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

40 lines (39 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Message = exports.setContext = void 0; const enums_1 = require("../utils/enums"); const transformCase_1 = require("../utils/transformCase"); const uuid_1 = require("uuid"); let messageContext; function setContext(context) { messageContext = context; } exports.setContext = setContext; 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 topicName(caseType = enums_1.CaseType.KebabCase) { return `${messageContext}_${this.messageName(caseType)}`; } static queueName(consumerName, caseType = enums_1.CaseType.KebabCase) { return `${messageContext}_${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;