@kubb/plugin-faker 5.0.8 → 5.0.9
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.cjs +17 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -834,6 +834,20 @@ function createCasedFile(caseLast) {
|
|
|
834
834
|
} };
|
|
835
835
|
}
|
|
836
836
|
//#endregion
|
|
837
|
+
//#region ../../internals/shared/src/refs.ts
|
|
838
|
+
/**
|
|
839
|
+
* Collects the resolved target name of every pointer-carrying ref in a schema tree, in
|
|
840
|
+
* first-occurrence order. Use this for name-only checks (e.g. redeclaration detection) where
|
|
841
|
+
* `resolver.imports` would resolve file paths that are then discarded.
|
|
842
|
+
*/
|
|
843
|
+
function collectRefNames(schema) {
|
|
844
|
+
return kubb_kit.ast.collectSync(schema, { schema: (node) => {
|
|
845
|
+
const refNode = kubb_kit.ast.narrowSchema(node, "ref");
|
|
846
|
+
if (!refNode?.ref) return null;
|
|
847
|
+
return kubb_kit.ast.resolveRefName(refNode);
|
|
848
|
+
} });
|
|
849
|
+
}
|
|
850
|
+
//#endregion
|
|
837
851
|
//#region ../../internals/shared/src/group.ts
|
|
838
852
|
/**
|
|
839
853
|
* Builds the `group` config a Kubb plugin passes to `ctx.setOptions`, applying the
|
|
@@ -1317,11 +1331,12 @@ const fakerGenerator = (0, kubb_kit.defineGenerator)({
|
|
|
1317
1331
|
description: node.requestBody?.description ?? schema.description
|
|
1318
1332
|
}));
|
|
1319
1333
|
const responseName = resolver.response.response(node);
|
|
1334
|
+
const hasResponseNameCollision = new Set(node.responses.flatMap((response) => (response.content ?? []).flatMap((entry) => entry.schema ? collectRefNames(entry.schema).map((name) => resolver.name(name)) : []))).has(responseName);
|
|
1320
1335
|
const localHelperNames = /* @__PURE__ */ new Set([
|
|
1321
1336
|
...paramGroups.map((group) => group.name),
|
|
1322
1337
|
...responseUnits.map((unit) => unit.name),
|
|
1323
1338
|
...dataUnits.map((unit) => unit.name),
|
|
1324
|
-
responseName
|
|
1339
|
+
...hasResponseNameCollision ? [] : [responseName]
|
|
1325
1340
|
]);
|
|
1326
1341
|
const cyclicSchemas = new Set(ctx.meta.circularNames);
|
|
1327
1342
|
const meta = {
|
|
@@ -1458,7 +1473,7 @@ const fakerGenerator = (0, kubb_kit.defineGenerator)({
|
|
|
1458
1473
|
description: unit.description,
|
|
1459
1474
|
skipImportNames: unit.skipImportNames
|
|
1460
1475
|
})),
|
|
1461
|
-
renderEntry({
|
|
1476
|
+
!hasResponseNameCollision && renderEntry({
|
|
1462
1477
|
schema: buildResponseUnionSchema(node, resolver),
|
|
1463
1478
|
name: responseName,
|
|
1464
1479
|
typeName: tsResolver.response.response(node),
|