@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.mjs
CHANGED
|
@@ -4208,7 +4208,7 @@ import { join } from "path";
|
|
|
4208
4208
|
// package.json
|
|
4209
4209
|
var package_default = {
|
|
4210
4210
|
name: "@eventcatalog/generator-openapi",
|
|
4211
|
-
version: "7.12.
|
|
4211
|
+
version: "7.12.1",
|
|
4212
4212
|
description: "OpenAPI generator for EventCatalog",
|
|
4213
4213
|
scripts: {
|
|
4214
4214
|
build: "tsup",
|
|
@@ -4448,19 +4448,36 @@ var mergeSends = (existing, incoming) => {
|
|
|
4448
4448
|
var toUniqueArray = (array) => {
|
|
4449
4449
|
return array.filter((item, index, self) => index === self.findIndex((t) => t.id === item.id && t.version === item.version));
|
|
4450
4450
|
};
|
|
4451
|
-
var
|
|
4452
|
-
var
|
|
4451
|
+
var isSkippableSegment = (segment) => /^(api|v\d+)$/i.test(segment);
|
|
4452
|
+
var getPathPrefix = (path4) => {
|
|
4453
|
+
const segments = path4.split("/").filter(Boolean);
|
|
4454
|
+
const meaningful = segments.filter((s) => !isSkippableSegment(s));
|
|
4455
|
+
return meaningful.find((s) => !s.startsWith("{"));
|
|
4456
|
+
};
|
|
4457
|
+
var buildGroupablePrefixes = (operations) => {
|
|
4458
|
+
const prefixToPaths = /* @__PURE__ */ new Map();
|
|
4459
|
+
for (const op of operations) {
|
|
4460
|
+
const prefix = getPathPrefix(op.path);
|
|
4461
|
+
if (!prefix) continue;
|
|
4462
|
+
if (!prefixToPaths.has(prefix)) prefixToPaths.set(prefix, /* @__PURE__ */ new Set());
|
|
4463
|
+
prefixToPaths.get(prefix).add(op.path);
|
|
4464
|
+
}
|
|
4465
|
+
const groupable = /* @__PURE__ */ new Set();
|
|
4466
|
+
for (const [prefix, paths] of prefixToPaths) {
|
|
4467
|
+
if (paths.size >= 2) groupable.add(prefix);
|
|
4468
|
+
}
|
|
4469
|
+
return groupable;
|
|
4470
|
+
};
|
|
4471
|
+
var getMessageGroup = (operation, groupMessagesBy, groupablePrefixes) => {
|
|
4453
4472
|
if (!groupMessagesBy) return void 0;
|
|
4454
4473
|
if (groupMessagesBy === "x-extension") {
|
|
4455
4474
|
return operation.extensions?.["x-eventcatalog-group"] || void 0;
|
|
4456
4475
|
}
|
|
4457
4476
|
if (groupMessagesBy === "path-prefix") {
|
|
4458
|
-
const
|
|
4459
|
-
const meaningfulSegments = allSegments.filter((s) => !SKIP_PATH_SEGMENTS.has(s.toLowerCase()));
|
|
4460
|
-
if (meaningfulSegments.length < 2) return void 0;
|
|
4461
|
-
const prefix = meaningfulSegments.find((s) => !s.startsWith("{"));
|
|
4477
|
+
const prefix = getPathPrefix(operation.path);
|
|
4462
4478
|
if (!prefix) return void 0;
|
|
4463
|
-
|
|
4479
|
+
if (!groupablePrefixes?.has(prefix)) return void 0;
|
|
4480
|
+
return `/${prefix}`;
|
|
4464
4481
|
}
|
|
4465
4482
|
return void 0;
|
|
4466
4483
|
};
|
|
@@ -4784,6 +4801,7 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
|
|
|
4784
4801
|
const preserveExistingMessages = options.preserveExistingMessages ?? true;
|
|
4785
4802
|
const parseExamples = options.parseExamples ?? true;
|
|
4786
4803
|
const isDraft = options.isDraft ?? null;
|
|
4804
|
+
const groupablePrefixes = options.groupMessagesBy === "path-prefix" ? buildGroupablePrefixes(operations) : void 0;
|
|
4787
4805
|
let receives = [], sends = [];
|
|
4788
4806
|
let allGeneratedMessages = [];
|
|
4789
4807
|
for (const operation of operations) {
|
|
@@ -4840,7 +4858,7 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
|
|
|
4840
4858
|
},
|
|
4841
4859
|
{ path: options.pathForMessages || messagePath, override: true }
|
|
4842
4860
|
);
|
|
4843
|
-
const group = getMessageGroup(operation, options.groupMessagesBy);
|
|
4861
|
+
const group = getMessageGroup(operation, options.groupMessagesBy, groupablePrefixes);
|
|
4844
4862
|
const pointer = {
|
|
4845
4863
|
id: message2.id,
|
|
4846
4864
|
version: message2.version,
|