Skip to content

Commit 21dce0e

Browse files
simonljusCode-Hex
authored andcommitted
add builder for InterfaceTypeDefinition
1 parent 8e68319 commit 21dce0e

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/graphql.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type {
44
DefinitionNode,
55
DocumentNode,
66
GraphQLSchema,
7+
InterfaceTypeDefinitionNode,
78
ListTypeNode,
89
NameNode,
910
NamedTypeNode,
@@ -23,6 +24,7 @@ export const isNamedType = (typ?: TypeNode): typ is NamedTypeNode => typ?.kind =
2324
export const isInput = (kind: string) => kind.includes('Input');
2425

2526
type ObjectTypeDefinitionFn = (node: ObjectTypeDefinitionNode) => any;
27+
type InterfaceTypeDefinitionFn = (node: InterfaceTypeDefinitionNode) => any;
2628

2729
export function ObjectTypeDefinitionBuilder(useObjectTypes: boolean | undefined, callback: ObjectTypeDefinitionFn): ObjectTypeDefinitionFn | undefined {
2830
if (!useObjectTypes)
@@ -35,7 +37,17 @@ export function ObjectTypeDefinitionBuilder(useObjectTypes: boolean | undefined,
3537
};
3638
}
3739

38-
export function topologicalSortAST(schema: GraphQLSchema, ast: DocumentNode): DocumentNode {
40+
export const InterfaceTypeDefinitionBuilder = (
41+
useInterfaceTypes: boolean | undefined,
42+
callback: InterfaceTypeDefinitionFn
43+
): InterfaceTypeDefinitionFn | undefined => {
44+
if (!useInterfaceTypes) return undefined;
45+
return node => {
46+
return callback(node);
47+
};
48+
};
49+
50+
export const topologicalSortAST = (schema: GraphQLSchema, ast: DocumentNode): DocumentNode => {
3951
const dependencyGraph = new Graph();
4052
const targetKinds = [
4153
'ObjectTypeDefinition',

0 commit comments

Comments
 (0)