@eventcatalog/generator-openapi 7.11.2 → 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.d.mts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +45 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +45 -11
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.mts +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js.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.
|
|
4211
|
+
version: "7.12.1",
|
|
4212
4212
|
description: "OpenAPI generator for EventCatalog",
|
|
4213
4213
|
scripts: {
|
|
4214
4214
|
build: "tsup",
|
|
@@ -4448,6 +4448,39 @@ 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 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) => {
|
|
4472
|
+
if (!groupMessagesBy) return void 0;
|
|
4473
|
+
if (groupMessagesBy === "x-extension") {
|
|
4474
|
+
return operation.extensions?.["x-eventcatalog-group"] || void 0;
|
|
4475
|
+
}
|
|
4476
|
+
if (groupMessagesBy === "path-prefix") {
|
|
4477
|
+
const prefix = getPathPrefix(operation.path);
|
|
4478
|
+
if (!prefix) return void 0;
|
|
4479
|
+
if (!groupablePrefixes?.has(prefix)) return void 0;
|
|
4480
|
+
return `/${prefix}`;
|
|
4481
|
+
}
|
|
4482
|
+
return void 0;
|
|
4483
|
+
};
|
|
4451
4484
|
var fetchAuthenticatedSpec = async (specUrl, headers) => {
|
|
4452
4485
|
const response = await fetch(specUrl, { method: "GET", headers });
|
|
4453
4486
|
if (!response.ok) {
|
|
@@ -4685,9 +4718,9 @@ Processing domain: ${domainName} (v${domainVersion})`));
|
|
|
4685
4718
|
console.log(chalk4.cyan(` - Service (v${version}) created`));
|
|
4686
4719
|
const consumers = serviceSpec.consumers || [];
|
|
4687
4720
|
for (const consumer of consumers) {
|
|
4688
|
-
const consumerVersion = consumer.version || "1.0.0";
|
|
4689
4721
|
const filteredSends = filterMessagesByRoutes(allGeneratedMessages, consumer.routes);
|
|
4690
|
-
const existingConsumer = await getService(consumer.id,
|
|
4722
|
+
const existingConsumer = await getService(consumer.id, consumer.version || "latest");
|
|
4723
|
+
const consumerVersion = consumer.version || existingConsumer?.version || "1.0.0";
|
|
4691
4724
|
if (existingConsumer) {
|
|
4692
4725
|
const mergedSends = mergeSends(existingConsumer.sends || [], filteredSends);
|
|
4693
4726
|
const consumerResource = await getResourcePath(process.env.PROJECT_DIR, consumer.id, consumerVersion);
|
|
@@ -4768,6 +4801,7 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
|
|
|
4768
4801
|
const preserveExistingMessages = options.preserveExistingMessages ?? true;
|
|
4769
4802
|
const parseExamples = options.parseExamples ?? true;
|
|
4770
4803
|
const isDraft = options.isDraft ?? null;
|
|
4804
|
+
const groupablePrefixes = options.groupMessagesBy === "path-prefix" ? buildGroupablePrefixes(operations) : void 0;
|
|
4771
4805
|
let receives = [], sends = [];
|
|
4772
4806
|
let allGeneratedMessages = [];
|
|
4773
4807
|
for (const operation of operations) {
|
|
@@ -4824,16 +4858,16 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
|
|
|
4824
4858
|
},
|
|
4825
4859
|
{ path: options.pathForMessages || messagePath, override: true }
|
|
4826
4860
|
);
|
|
4861
|
+
const group = getMessageGroup(operation, options.groupMessagesBy, groupablePrefixes);
|
|
4862
|
+
const pointer = {
|
|
4863
|
+
id: message2.id,
|
|
4864
|
+
version: message2.version,
|
|
4865
|
+
...group ? { group } : {}
|
|
4866
|
+
};
|
|
4827
4867
|
if (messageAction === "sends") {
|
|
4828
|
-
sends.push(
|
|
4829
|
-
id: message2.id,
|
|
4830
|
-
version: message2.version
|
|
4831
|
-
});
|
|
4868
|
+
sends.push(pointer);
|
|
4832
4869
|
} else {
|
|
4833
|
-
receives.push(
|
|
4834
|
-
id: message2.id,
|
|
4835
|
-
version: message2.version
|
|
4836
|
-
});
|
|
4870
|
+
receives.push(pointer);
|
|
4837
4871
|
}
|
|
4838
4872
|
allGeneratedMessages.push({
|
|
4839
4873
|
id: message2.id,
|