@eventcatalog/generator-openapi 7.12.0 → 7.12.1
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.js +27 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +27 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4213,7 +4213,7 @@ var import_node_path = require("path");
|
|
|
4213
4213
|
// package.json
|
|
4214
4214
|
var package_default = {
|
|
4215
4215
|
name: "@eventcatalog/generator-openapi",
|
|
4216
|
-
version: "7.12.
|
|
4216
|
+
version: "7.12.1",
|
|
4217
4217
|
description: "OpenAPI generator for EventCatalog",
|
|
4218
4218
|
scripts: {
|
|
4219
4219
|
build: "tsup",
|
|
@@ -4453,19 +4453,36 @@ var mergeSends = (existing, incoming) => {
|
|
|
4453
4453
|
var toUniqueArray = (array) => {
|
|
4454
4454
|
return array.filter((item, index, self) => index === self.findIndex((t) => t.id === item.id && t.version === item.version));
|
|
4455
4455
|
};
|
|
4456
|
-
var
|
|
4457
|
-
var
|
|
4456
|
+
var isSkippableSegment = (segment) => /^(api|v\d+)$/i.test(segment);
|
|
4457
|
+
var getPathPrefix = (path4) => {
|
|
4458
|
+
const segments = path4.split("/").filter(Boolean);
|
|
4459
|
+
const meaningful = segments.filter((s) => !isSkippableSegment(s));
|
|
4460
|
+
return meaningful.find((s) => !s.startsWith("{"));
|
|
4461
|
+
};
|
|
4462
|
+
var buildGroupablePrefixes = (operations) => {
|
|
4463
|
+
const prefixToPaths = /* @__PURE__ */ new Map();
|
|
4464
|
+
for (const op of operations) {
|
|
4465
|
+
const prefix = getPathPrefix(op.path);
|
|
4466
|
+
if (!prefix) continue;
|
|
4467
|
+
if (!prefixToPaths.has(prefix)) prefixToPaths.set(prefix, /* @__PURE__ */ new Set());
|
|
4468
|
+
prefixToPaths.get(prefix).add(op.path);
|
|
4469
|
+
}
|
|
4470
|
+
const groupable = /* @__PURE__ */ new Set();
|
|
4471
|
+
for (const [prefix, paths] of prefixToPaths) {
|
|
4472
|
+
if (paths.size >= 2) groupable.add(prefix);
|
|
4473
|
+
}
|
|
4474
|
+
return groupable;
|
|
4475
|
+
};
|
|
4476
|
+
var getMessageGroup = (operation, groupMessagesBy, groupablePrefixes) => {
|
|
4458
4477
|
if (!groupMessagesBy) return void 0;
|
|
4459
4478
|
if (groupMessagesBy === "x-extension") {
|
|
4460
4479
|
return operation.extensions?.["x-eventcatalog-group"] || void 0;
|
|
4461
4480
|
}
|
|
4462
4481
|
if (groupMessagesBy === "path-prefix") {
|
|
4463
|
-
const
|
|
4464
|
-
const meaningfulSegments = allSegments.filter((s) => !SKIP_PATH_SEGMENTS.has(s.toLowerCase()));
|
|
4465
|
-
if (meaningfulSegments.length < 2) return void 0;
|
|
4466
|
-
const prefix = meaningfulSegments.find((s) => !s.startsWith("{"));
|
|
4482
|
+
const prefix = getPathPrefix(operation.path);
|
|
4467
4483
|
if (!prefix) return void 0;
|
|
4468
|
-
|
|
4484
|
+
if (!groupablePrefixes?.has(prefix)) return void 0;
|
|
4485
|
+
return `/${prefix}`;
|
|
4469
4486
|
}
|
|
4470
4487
|
return void 0;
|
|
4471
4488
|
};
|
|
@@ -4789,6 +4806,7 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
|
|
|
4789
4806
|
const preserveExistingMessages = options.preserveExistingMessages ?? true;
|
|
4790
4807
|
const parseExamples = options.parseExamples ?? true;
|
|
4791
4808
|
const isDraft = options.isDraft ?? null;
|
|
4809
|
+
const groupablePrefixes = options.groupMessagesBy === "path-prefix" ? buildGroupablePrefixes(operations) : void 0;
|
|
4792
4810
|
let receives = [], sends = [];
|
|
4793
4811
|
let allGeneratedMessages = [];
|
|
4794
4812
|
for (const operation of operations) {
|
|
@@ -4845,7 +4863,7 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
|
|
|
4845
4863
|
},
|
|
4846
4864
|
{ path: options.pathForMessages || messagePath, override: true }
|
|
4847
4865
|
);
|
|
4848
|
-
const group = getMessageGroup(operation, options.groupMessagesBy);
|
|
4866
|
+
const group = getMessageGroup(operation, options.groupMessagesBy, groupablePrefixes);
|
|
4849
4867
|
const pointer = {
|
|
4850
4868
|
id: message2.id,
|
|
4851
4869
|
version: message2.version,
|