@kubb/plugin-faker 5.0.5 → 5.0.7
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 +15 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +15 -12
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -467,10 +467,14 @@ function buildResponseUnionSchema(node, resolver) {
|
|
|
467
467
|
}
|
|
468
468
|
return kubb_kit.ast.factory.createSchema({
|
|
469
469
|
type: "union",
|
|
470
|
-
members: responses.map((response) =>
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
470
|
+
members: responses.map((response) => {
|
|
471
|
+
const schema = (response.content?.length ?? 0) === 1 ? response.content?.[0]?.schema : void 0;
|
|
472
|
+
return kubb_kit.ast.factory.createSchema({
|
|
473
|
+
type: "ref",
|
|
474
|
+
name: resolver.response.status(node, response.statusCode),
|
|
475
|
+
schema
|
|
476
|
+
});
|
|
477
|
+
})
|
|
474
478
|
});
|
|
475
479
|
}
|
|
476
480
|
const SCALAR_TYPES$1 = /* @__PURE__ */ new Set([
|
|
@@ -532,11 +536,8 @@ function getScalarType(node, typeName) {
|
|
|
532
536
|
* Determines the data type, return type, and whether it uses the type name.
|
|
533
537
|
*/
|
|
534
538
|
function resolveFakerTypeUsage(node, typeName, canOverride) {
|
|
535
|
-
const isArray = node.type === "array";
|
|
536
|
-
const isTuple = node.type === "tuple";
|
|
537
539
|
const isScalar = SCALAR_TYPES$1.has(node.type);
|
|
538
540
|
let dataType = `Partial<${typeName}>`;
|
|
539
|
-
if (isArray || isTuple || node.type === "union" || node.type === "enum") dataType = typeName;
|
|
540
541
|
if (isScalar) dataType = getScalarType(node, typeName);
|
|
541
542
|
let returnType = canOverride ? typeName : null;
|
|
542
543
|
if (isScalar) returnType = getScalarType(node, typeName);
|
|
@@ -571,11 +572,12 @@ function Faker({ node, description, name, typeName, printer, canOverride }) {
|
|
|
571
572
|
const isObject = OBJECT_TYPES.has(node.type);
|
|
572
573
|
const isTuple = node.type === "tuple";
|
|
573
574
|
const isScalar = SCALAR_TYPES.has(node.type);
|
|
575
|
+
const isUnion = node.type === "union";
|
|
574
576
|
const useGenericOverride = canOverride && isObject;
|
|
575
577
|
const fakerTextWithOverride = (() => {
|
|
576
|
-
if (canOverride &&
|
|
577
|
-
if (canOverride && isArray) return `[\n ...${fakerText},\n ...(data || [])
|
|
578
|
-
if (canOverride && isScalar) return `data ?? ${fakerText}`;
|
|
578
|
+
if (canOverride && node.type === "tuple") return `data && data.length === ${node.items?.length ?? 0} && !data.includes(undefined) ? data : ${fakerText}`;
|
|
579
|
+
if (canOverride && isArray) return `[\n ...${fakerText},\n ...(data || []).filter((item) => item !== undefined),\n]`;
|
|
580
|
+
if (canOverride && (isScalar || isUnion)) return `data ?? ${fakerText}`;
|
|
579
581
|
return fakerText;
|
|
580
582
|
})();
|
|
581
583
|
const { dataType, returnType: resolvedReturnType } = resolveFakerTypeUsage(node, typeName, canOverride);
|
|
@@ -588,7 +590,7 @@ function Faker({ node, description, name, typeName, printer, canOverride }) {
|
|
|
588
590
|
})] });
|
|
589
591
|
const paramsSignature = declarationPrinter.print(params) ?? "";
|
|
590
592
|
const returnType = resolvedReturnType;
|
|
591
|
-
const returnExpression = node.type === "ref"
|
|
593
|
+
const returnExpression = canOverride && !!returnType && (node.type === "ref" || isArray || isTuple || isUnion) ? `${isTuple || isUnion ? `(${fakerTextWithOverride})` : fakerTextWithOverride} as ${returnType}` : fakerTextWithOverride;
|
|
592
594
|
return /* @__PURE__ */ (0, kubb_jsx_jsx_runtime.jsx)(kubb_jsx.File.Source, {
|
|
593
595
|
name,
|
|
594
596
|
isExportable: true,
|
|
@@ -1291,7 +1293,8 @@ const fakerGenerator = (0, kubb_kit.defineGenerator)({
|
|
|
1291
1293
|
type: "union",
|
|
1292
1294
|
members: variants.map((variant) => kubb_kit.ast.factory.createSchema({
|
|
1293
1295
|
type: "ref",
|
|
1294
|
-
name: variant.name
|
|
1296
|
+
name: variant.name,
|
|
1297
|
+
schema: variant.schema
|
|
1295
1298
|
}))
|
|
1296
1299
|
});
|
|
1297
1300
|
return [...variants.map((variant) => ({
|