@eventcatalog/generator-openapi 5.0.3 → 5.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -13,6 +13,7 @@ type Props = {
13
13
  writeFilesToRoot?: boolean;
14
14
  sidebarBadgeType?: 'HTTP_METHOD' | 'MESSAGE_TYPE';
15
15
  httpMethodsToMessages?: HTTP_METHOD_TO_MESSAGE_TYPE;
16
+ preserveExistingMessages?: boolean;
16
17
  };
17
18
  declare const _default: (_: any, options: Props) => Promise<void>;
18
19
 
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ type Props = {
13
13
  writeFilesToRoot?: boolean;
14
14
  sidebarBadgeType?: 'HTTP_METHOD' | 'MESSAGE_TYPE';
15
15
  httpMethodsToMessages?: HTTP_METHOD_TO_MESSAGE_TYPE;
16
+ preserveExistingMessages?: boolean;
16
17
  };
17
18
  declare const _default: (_: any, options: Props) => Promise<void>;
18
19
 
package/dist/index.js CHANGED
@@ -387,6 +387,19 @@ async function getSchemasByOperationId(filePath, operationId) {
387
387
  return;
388
388
  }
389
389
  }
390
+ function getDeprecatedValues(openAPIOperation) {
391
+ const deprecatedDate = openAPIOperation["x-eventcatalog-deprecated-date"] || null;
392
+ const deprecatedMessage = openAPIOperation["x-eventcatalog-deprecated-message"] || null;
393
+ const isNativeDeprecated = openAPIOperation.deprecated;
394
+ let deprecated = isNativeDeprecated;
395
+ if (deprecatedDate) {
396
+ deprecated = {
397
+ date: deprecatedDate,
398
+ message: deprecatedMessage
399
+ };
400
+ }
401
+ return deprecated;
402
+ }
390
403
  async function getOperationsByType(openApiPath, httpMethodsToMessages) {
391
404
  try {
392
405
  const api = await import_swagger_parser.default.validate(openApiPath);
@@ -396,6 +409,7 @@ async function getOperationsByType(openApiPath, httpMethodsToMessages) {
396
409
  for (const method in pathItem) {
397
410
  const openAPIOperation = pathItem[method];
398
411
  const defaultMessageType = httpMethodsToMessages?.[method.toUpperCase()] || DEFAULT_MESSAGE_TYPE;
412
+ const deprecated = getDeprecatedValues(openAPIOperation);
399
413
  const messageType = openAPIOperation["x-eventcatalog-message-type"] || defaultMessageType;
400
414
  const messageAction = openAPIOperation["x-eventcatalog-message-action"] === "sends" ? "sends" : "receives";
401
415
  const extensions = Object.keys(openAPIOperation).reduce((acc, key) => {
@@ -414,7 +428,8 @@ async function getOperationsByType(openApiPath, httpMethodsToMessages) {
414
428
  description: openAPIOperation.description,
415
429
  summary: openAPIOperation.summary,
416
430
  tags: openAPIOperation.tags || [],
417
- extensions
431
+ extensions,
432
+ ...deprecated ? { deprecated } : {}
418
433
  };
419
434
  operations.push(operation);
420
435
  }
@@ -565,7 +580,8 @@ var buildMessage = async (pathToFile, document, operation) => {
565
580
  requestBodiesAndResponses,
566
581
  sidebar: {
567
582
  badge: httpVerb
568
- }
583
+ },
584
+ ...operation.deprecated ? { deprecated: operation.deprecated } : {}
569
585
  };
570
586
  };
571
587
 
@@ -624,7 +640,7 @@ var import_chalk = __toESM(require("chalk"));
624
640
  // package.json
625
641
  var package_default = {
626
642
  name: "@eventcatalog/generator-openapi",
627
- version: "5.0.3",
643
+ version: "5.0.5",
628
644
  description: "OpenAPI generator for EventCatalog",
629
645
  scripts: {
630
646
  build: "tsup",
@@ -660,7 +676,7 @@ var package_default = {
660
676
  dependencies: {
661
677
  "@apidevtools/swagger-parser": "^10.1.0",
662
678
  "@changesets/cli": "^2.27.7",
663
- "@eventcatalog/sdk": "^2.2.4",
679
+ "@eventcatalog/sdk": "^2.2.6",
664
680
  chalk: "^4",
665
681
  "js-yaml": "^4.1.0",
666
682
  "openapi-types": "^12.1.3",
@@ -1701,6 +1717,7 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document, servicePath, op
1701
1717
  const operations = await getOperationsByType(pathToSpec, options.httpMethodsToMessages);
1702
1718
  const sidebarBadgeType = options.sidebarBadgeType || "HTTP_METHOD";
1703
1719
  const version = document.info.version;
1720
+ const preserveExistingMessages = options.preserveExistingMessages ?? true;
1704
1721
  let receives = [], sends = [];
1705
1722
  for (const operation of operations) {
1706
1723
  const { requestBodiesAndResponses, sidebar, ...message } = await buildMessage(pathToSpec, document, operation);
@@ -1717,7 +1734,9 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document, servicePath, op
1717
1734
  } = getMessageTypeUtils(process.env.PROJECT_DIR, messageType);
1718
1735
  const catalogedMessage = await getMessage(message.id, "latest");
1719
1736
  if (catalogedMessage) {
1720
- messageMarkdown = catalogedMessage.markdown;
1737
+ if (preserveExistingMessages) {
1738
+ messageMarkdown = catalogedMessage.markdown;
1739
+ }
1721
1740
  if (catalogedMessage.version !== version) {
1722
1741
  await versionMessage(message.id);
1723
1742
  console.log(import_chalk3.default.cyan(` - Versioned previous message: (v${catalogedMessage.version})`));