@eventcatalog/generator-openapi 7.2.0 → 7.3.0

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
@@ -1,4 +1,4 @@
1
- import { Service, Domain } from './types.mjs';
1
+ import { Service, Message, Domain } from './types.mjs';
2
2
  import 'openapi-types';
3
3
 
4
4
  type MESSAGE_TYPE = 'command' | 'query' | 'event';
@@ -6,6 +6,7 @@ type HTTP_METHOD = 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIO
6
6
  type HTTP_METHOD_TO_MESSAGE_TYPE = Partial<Record<HTTP_METHOD, MESSAGE_TYPE>>;
7
7
  type Props = {
8
8
  services: Service[];
9
+ messages?: Message;
9
10
  domain?: Domain;
10
11
  debug?: boolean;
11
12
  saveParsedSpecFile?: boolean;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Service, Domain } from './types.js';
1
+ import { Service, Message, Domain } from './types.js';
2
2
  import 'openapi-types';
3
3
 
4
4
  type MESSAGE_TYPE = 'command' | 'query' | 'event';
@@ -6,6 +6,7 @@ type HTTP_METHOD = 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIO
6
6
  type HTTP_METHOD_TO_MESSAGE_TYPE = Partial<Record<HTTP_METHOD, MESSAGE_TYPE>>;
7
7
  type Props = {
8
8
  services: Service[];
9
+ messages?: Message;
9
10
  domain?: Domain;
10
11
  debug?: boolean;
11
12
  saveParsedSpecFile?: boolean;
package/dist/index.js CHANGED
@@ -6644,6 +6644,7 @@ var buildService = (serviceOptions, document2, generateMarkdown) => {
6644
6644
  const schemaPath = import_path.default.basename(serviceOptions.path) || "openapi.yml";
6645
6645
  const documentTags = document2.tags || [];
6646
6646
  const serviceId = serviceOptions.id || (0, import_slugify.default)(document2.info.title, { lower: true, strict: true });
6647
+ const generatedMarkdownForService = defaultMarkdown2(document2, schemaPath);
6647
6648
  return {
6648
6649
  id: serviceId,
6649
6650
  version: document2.info.version,
@@ -6653,7 +6654,7 @@ var buildService = (serviceOptions, document2, generateMarkdown) => {
6653
6654
  specifications: {
6654
6655
  openapiPath: schemaPath
6655
6656
  },
6656
- markdown: generateMarkdown ? generateMarkdown(document2, schemaPath) : defaultMarkdown2(document2, schemaPath),
6657
+ markdown: generateMarkdown ? generateMarkdown({ service: serviceOptions, document: document2, markdown: generatedMarkdownForService }) : generatedMarkdownForService,
6657
6658
  badges: documentTags.map((tag) => ({ content: tag.name, textColor: "blue", backgroundColor: "blue" })),
6658
6659
  owners: serviceOptions.owners || [],
6659
6660
  setMessageOwnersToServiceOwners: serviceOptions.setMessageOwnersToServiceOwners || true
@@ -6867,7 +6868,7 @@ var getSummary2 = (message) => {
6867
6868
  }
6868
6869
  return eventCatalogMessageSummary;
6869
6870
  };
6870
- var buildMessage = async (pathToFile, document2, operation) => {
6871
+ var buildMessage = async (pathToFile, document2, operation, generateMarkdown) => {
6871
6872
  const requestBodiesAndResponses = await getSchemasByOperationId(pathToFile, operation.operationId);
6872
6873
  const extensions = operation.extensions || {};
6873
6874
  const operationTags = operation.tags.map((badge) => ({
@@ -6883,18 +6884,20 @@ var buildMessage = async (pathToFile, document2, operation) => {
6883
6884
  uniqueIdentifier = uniqueIdentifier.concat(`_${path3}`);
6884
6885
  }
6885
6886
  const httpVerb = operation.method.toUpperCase() || "";
6887
+ const generatedMarkdownForMessage = defaultMarkdown3(operation, requestBodiesAndResponses);
6886
6888
  return {
6887
6889
  id: extensions["x-eventcatalog-message-id"] || uniqueIdentifier,
6888
6890
  version: extensions["x-eventcatalog-message-version"] || document2.info.version,
6889
6891
  name: extensions["x-eventcatalog-message-name"] || uniqueIdentifier,
6890
6892
  summary: getSummary2(operation),
6891
- markdown: defaultMarkdown3(operation, requestBodiesAndResponses),
6893
+ markdown: generateMarkdown ? generateMarkdown({ operation, markdown: generatedMarkdownForMessage }) : generatedMarkdownForMessage,
6892
6894
  schemaPath: requestBodiesAndResponses?.requestBody ? "request-body.json" : "",
6893
6895
  badges,
6894
6896
  requestBodiesAndResponses,
6895
6897
  sidebar: {
6896
6898
  badge: httpVerb
6897
6899
  },
6900
+ ...extensions["x-eventcatalog-draft"] ? { draft: true } : {},
6898
6901
  ...operation.deprecated ? { deprecated: operation.deprecated } : {}
6899
6902
  };
6900
6903
  };
@@ -8293,7 +8296,7 @@ var import_node_path2 = require("path");
8293
8296
  // package.json
8294
8297
  var package_default = {
8295
8298
  name: "@eventcatalog/generator-openapi",
8296
- version: "7.2.0",
8299
+ version: "7.3.0",
8297
8300
  description: "OpenAPI generator for EventCatalog",
8298
8301
  scripts: {
8299
8302
  build: "tsup",
@@ -8330,7 +8333,7 @@ var package_default = {
8330
8333
  dependencies: {
8331
8334
  "@apidevtools/swagger-parser": "^10.1.0",
8332
8335
  "@changesets/cli": "^2.27.7",
8333
- "@eventcatalog/sdk": "^2.3.7",
8336
+ "@eventcatalog/sdk": "^2.6.9",
8334
8337
  chalk: "^4",
8335
8338
  "js-yaml": "^4.1.0",
8336
8339
  "openapi-types": "^12.1.3",
@@ -9260,6 +9263,11 @@ var index_default = async (_, options) => {
9260
9263
  let serviceMarkdown = service.markdown;
9261
9264
  let serviceSpecificationsFiles = [];
9262
9265
  let serviceSpecifications = service.specifications;
9266
+ const isDomainMarkedAsDraft = options.domain?.draft || null;
9267
+ const isServiceMarkedAsDraft = (
9268
+ // @ts-ignore
9269
+ isDomainMarkedAsDraft || document2.info?.["x-eventcatalog-draft"] || serviceSpec.draft || null
9270
+ );
9263
9271
  let servicePath = options.domain ? (0, import_node_path2.join)("../", "domains", options.domain.id, "services", service.id) : (0, import_node_path2.join)("../", "services", service.id);
9264
9272
  if (options.writeFilesToRoot) {
9265
9273
  servicePath = service.id;
@@ -9275,12 +9283,14 @@ Processing domain: ${domainName} (v${domainVersion})`));
9275
9283
  console.log(import_chalk3.default.cyan(` - Versioned previous domain (v${currentDomain.version})`));
9276
9284
  }
9277
9285
  if (!domain || domain && domain.version !== domainVersion) {
9286
+ const generatedMarkdownForDomain = defaultMarkdown();
9278
9287
  await writeDomain({
9279
9288
  id: domainId,
9280
9289
  name: domainName,
9281
9290
  version: domainVersion,
9282
- markdown: defaultMarkdown(),
9283
- ...options.domain?.owners ? { owners: options.domain.owners } : {}
9291
+ markdown: options.domain?.generateMarkdown ? options.domain.generateMarkdown({ domain: options.domain, markdown: generatedMarkdownForDomain }) : generatedMarkdownForDomain,
9292
+ ...options.domain?.owners ? { owners: options.domain.owners } : {},
9293
+ ...isDomainMarkedAsDraft && { draft: true }
9284
9294
  });
9285
9295
  console.log(import_chalk3.default.cyan(` - Domain (v${domainVersion}) created`));
9286
9296
  }
@@ -9302,7 +9312,8 @@ Processing domain: ${domainName} (v${domainVersion})`));
9302
9312
  let { sends, receives } = await processMessagesForOpenAPISpec(specPath, document2, servicePath, {
9303
9313
  ...options,
9304
9314
  owners: service.setMessageOwnersToServiceOwners ? service.owners : [],
9305
- serviceHasMultipleSpecFiles: Array.isArray(serviceSpec.path)
9315
+ serviceHasMultipleSpecFiles: Array.isArray(serviceSpec.path),
9316
+ isDraft: isServiceMarkedAsDraft
9306
9317
  });
9307
9318
  let owners = service.owners || [];
9308
9319
  let repository = null;
@@ -9323,6 +9334,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
9323
9334
  receives = latestServiceInCatalog.receives ? [...latestServiceInCatalog.receives, ...receives] : receives;
9324
9335
  }
9325
9336
  }
9337
+ console.log("isServiceMarkedAsDraft", service);
9326
9338
  await writeService(
9327
9339
  {
9328
9340
  ...service,
@@ -9332,7 +9344,8 @@ Processing domain: ${domainName} (v${domainVersion})`));
9332
9344
  receives,
9333
9345
  ...owners ? { owners } : {},
9334
9346
  ...repository ? { repository } : {},
9335
- ...styles2 ? { styles: styles2 } : {}
9347
+ ...styles2 ? { styles: styles2 } : {},
9348
+ ...isServiceMarkedAsDraft ? { draft: true } : {}
9336
9349
  },
9337
9350
  { path: (0, import_node_path2.join)(servicePath), override: true }
9338
9351
  );
@@ -9363,9 +9376,15 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
9363
9376
  const sidebarBadgeType = options.sidebarBadgeType || "HTTP_METHOD";
9364
9377
  const version = document2.info.version;
9365
9378
  const preserveExistingMessages = options.preserveExistingMessages ?? true;
9379
+ const isDraft = options.isDraft ?? null;
9366
9380
  let receives = [], sends = [];
9367
9381
  for (const operation of operations) {
9368
- const { requestBodiesAndResponses, sidebar, ...message } = await buildMessage(pathToSpec, document2, operation);
9382
+ const { requestBodiesAndResponses, sidebar, ...message } = await buildMessage(
9383
+ pathToSpec,
9384
+ document2,
9385
+ operation,
9386
+ options.messages?.generateMarkdown
9387
+ );
9369
9388
  let messageMarkdown = message.markdown;
9370
9389
  const messageType = operation.type;
9371
9390
  const messageAction = operation.action;
@@ -9397,7 +9416,8 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
9397
9416
  markdown: messageMarkdown,
9398
9417
  ...options.owners ? { owners: options.owners } : {},
9399
9418
  // only if its defined add it to the sidebar
9400
- ...sidebarBadgeType === "HTTP_METHOD" ? { sidebar } : {}
9419
+ ...sidebarBadgeType === "HTTP_METHOD" ? { sidebar } : {},
9420
+ ...isDraft ? { draft: true } : {}
9401
9421
  },
9402
9422
  { path: options.pathForMessages || messagePath, override: true }
9403
9423
  );