@kubb/plugin-faker 5.0.2 → 5.0.4
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 +11 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/package.json +5 -4
package/dist/index.cjs
CHANGED
|
@@ -981,9 +981,16 @@ function parseEnumValue(value) {
|
|
|
981
981
|
* Reads the discriminator literal off a variant, or `undefined` when it can't be determined.
|
|
982
982
|
*/
|
|
983
983
|
function getDiscriminatorValue(member, discriminatorPropertyName) {
|
|
984
|
-
const prop = kubb_kit.ast.narrowSchema(member, "object")?.properties?.find((
|
|
984
|
+
const prop = kubb_kit.ast.narrowSchema(member, "object")?.properties?.find((property) => property.name === discriminatorPropertyName);
|
|
985
985
|
const enumNode = prop ? kubb_kit.ast.narrowSchema(prop.schema, "enum") : null;
|
|
986
|
-
|
|
986
|
+
if (enumNode) return getEnumValues(enumNode)[0];
|
|
987
|
+
const refNode = kubb_kit.ast.narrowSchema(member, "ref");
|
|
988
|
+
if (refNode?.schema) return getDiscriminatorValue(refNode.schema, discriminatorPropertyName);
|
|
989
|
+
const intersectionNode = kubb_kit.ast.narrowSchema(member, "intersection");
|
|
990
|
+
for (const intersectionMember of intersectionNode?.members ?? []) {
|
|
991
|
+
const value = getDiscriminatorValue(intersectionMember, discriminatorPropertyName);
|
|
992
|
+
if (value !== void 0) return value;
|
|
993
|
+
}
|
|
987
994
|
}
|
|
988
995
|
/**
|
|
989
996
|
* Type expression for an object property's value, indexed off the parent `typeName`.
|
|
@@ -1059,7 +1066,8 @@ const printerFaker = kubb_kit.ast.createPrinter((options) => {
|
|
|
1059
1066
|
const typeName = `Extract<NonNullable<${baseTypeName}>, { ${JSON.stringify(discriminatorPropertyName)}: ${parseEnumValue(value)} }>`;
|
|
1060
1067
|
return printNested(member, {
|
|
1061
1068
|
typeName,
|
|
1062
|
-
nestedInObject: true
|
|
1069
|
+
nestedInObject: true,
|
|
1070
|
+
nestedInUnion: true
|
|
1063
1071
|
});
|
|
1064
1072
|
}
|
|
1065
1073
|
return printNested(member, {
|