Skip to content

Commit 73f6bfc

Browse files
committed
fixed to supress union type generation when withObjectType is false
1 parent 58c511d commit 73f6bfc

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

src/myzod/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export const MyZodSchemaVisitor = (schema: GraphQLSchema, config: ValidationSche
9191
.withContent(`myzod.enum(${enumname})`).string;
9292
},
9393
UnionTypeDefinition: (node: UnionTypeDefinitionNode) => {
94-
if (!node.types) return;
94+
if (!node.types || !config.withObjectType) return;
9595

9696
const unionName = tsVisitor.convertName(node.name.value);
9797
const unionElements = node.types?.map(t => `${tsVisitor.convertName(t.name.value)}Schema()`).join(', ');

src/yup/index.ts

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,22 @@ export const YupSchemaVisitor = (schema: GraphQLSchema, config: ValidationSchema
2929
}
3030
return [importYup];
3131
},
32-
initialEmit: (): string =>
33-
'\n' +
34-
new DeclarationBlock({})
35-
.asKind('function')
36-
.withName('union<T>(...schemas: ReadonlyArray<yup.SchemaOf<T>>): yup.BaseSchema<T>')
37-
.withBlock(
38-
[
39-
indent('return yup.mixed().test({'),
40-
indent('test: (value) => schemas.some((schema) => schema.isValidSync(value))', 2),
41-
indent('})'),
42-
].join('\n')
43-
).string,
32+
initialEmit: (): string => {
33+
if (!config.withObjectType) return '';
34+
return (
35+
'\n' +
36+
new DeclarationBlock({})
37+
.asKind('function')
38+
.withName('union<T>(...schemas: ReadonlyArray<yup.SchemaOf<T>>): yup.BaseSchema<T>')
39+
.withBlock(
40+
[
41+
indent('return yup.mixed().test({'),
42+
indent('test: (value) => schemas.some((schema) => schema.isValidSync(value))', 2),
43+
indent('})'),
44+
].join('\n')
45+
).string
46+
);
47+
},
4448
InputObjectTypeDefinition: (node: InputObjectTypeDefinitionNode) => {
4549
const name = tsVisitor.convertName(node.name.value);
4650
importTypes.push(name);
@@ -102,7 +106,7 @@ export const YupSchemaVisitor = (schema: GraphQLSchema, config: ValidationSchema
102106
.withContent(`yup.mixed().oneOf([${values}])`).string;
103107
},
104108
UnionTypeDefinition: (node: UnionTypeDefinitionNode) => {
105-
if (!node.types) return;
109+
if (!node.types || !config.withObjectType) return;
106110

107111
const unionName = tsVisitor.convertName(node.name.value);
108112
importTypes.push(unionName);

src/zod/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export const ZodSchemaVisitor = (schema: GraphQLSchema, config: ValidationSchema
102102
.withContent(`z.nativeEnum(${enumname})`).string;
103103
},
104104
UnionTypeDefinition: (node: UnionTypeDefinitionNode) => {
105-
if (!node.types) return;
105+
if (!node.types || !config.withObjectType) return;
106106

107107
const unionName = tsVisitor.convertName(node.name.value);
108108
const unionElements = node.types.map(t => `${tsVisitor.convertName(t.name.value)}Schema()`).join(', ');

0 commit comments

Comments
 (0)