Skip to content

Commit c7ed50a

Browse files
feat: support fragment parsing in parseFieldNodes
1 parent 3d2689f commit c7ed50a

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

packages/query-graphql/src/decorators/graphql-resolve-info.utils.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,18 @@ function parseFieldNodes<DTO>(
6868
): QueryResolveTree<DTO> | QueryResolveFields<DTO> {
6969
const asts: ReadonlyArray<SelectionNode> = Array.isArray(inASTs) ? inASTs : [inASTs]
7070

71-
return asts.reduce((tree, fieldNode) => {
71+
const astsWithInlinedFragments = asts.flatMap(ast => {
72+
if (ast.kind === Kind.FRAGMENT_SPREAD) {
73+
const fragment = resolveInfo.fragments[ast.name.value];
74+
if (fragment) {
75+
return fragment.selectionSet.selections;
76+
}
77+
return [];
78+
}
79+
return ast;
80+
})
81+
82+
return astsWithInlinedFragments.reduce((tree, fieldNode) => {
7283
let name: string
7384
let alias: string
7485

0 commit comments

Comments
 (0)