@@ -21,6 +21,7 @@ import {
21
21
} from "graphql" ;
22
22
import { CodegenConfigWithDefaults } from "../config/build-config-with-defaults" ;
23
23
import { getBaseTypeNode } from "@graphql-codegen/visitor-plugin-common" ;
24
+ import { shouldIncludeTypeDefinition } from "../config/should-include-type-definition" ;
24
25
25
26
export function getDependentFieldTypeNames (
26
27
node : TypeDefinitionNode ,
@@ -41,9 +42,16 @@ function getFieldTypeName(fieldType: TypeNode) {
41
42
return getBaseTypeNode ( fieldType ) . name . value ;
42
43
}
43
44
44
- export function getDependentInterfaceNames ( node : TypeDefinitionNode ) {
45
+ export function getDependentInterfaceNames (
46
+ node : TypeDefinitionNode ,
47
+ config : CodegenConfigWithDefaults ,
48
+ ) {
45
49
return "interfaces" in node
46
- ? ( node . interfaces ?. map ( ( interfaceNode ) => interfaceNode . name . value ) ?? [ ] )
50
+ ? ( node . interfaces
51
+ ?. map ( ( interfaceNode ) => interfaceNode . name . value )
52
+ . filter ( ( interfaceName ) =>
53
+ shouldIncludeDependentType ( interfaceName , config ) ,
54
+ ) ?? [ ] )
47
55
: [ ] ;
48
56
}
49
57
@@ -56,6 +64,7 @@ export function getDependentUnionNames(node: TypeDefinitionNode) {
56
64
export function getDependentUnionsForType (
57
65
schema : GraphQLSchema ,
58
66
node : TypeDefinitionNode ,
67
+ config : CodegenConfigWithDefaults ,
59
68
) {
60
69
const typeMap = schema . getTypeMap ( ) ;
61
70
const unions = Object . values ( typeMap ) . filter ( ( type ) =>
@@ -65,5 +74,16 @@ export function getDependentUnionsForType(
65
74
. filter ( ( union ) =>
66
75
union . getTypes ( ) . some ( ( type ) => type . name === node . name . value ) ,
67
76
)
68
- . map ( ( union ) => union . name ) ;
77
+ . map ( ( union ) => union . name )
78
+ . filter ( ( unionName ) => shouldIncludeDependentType ( unionName , config ) ) ;
79
+ }
80
+
81
+ function shouldIncludeDependentType (
82
+ typeName : string ,
83
+ config : CodegenConfigWithDefaults ,
84
+ ) {
85
+ return (
86
+ config . includeDependentTypes ||
87
+ shouldIncludeTypeDefinition ( typeName , config )
88
+ ) ;
69
89
}
0 commit comments