Skip to content

Commit baf3c28

Browse files
authored
fix(filterSchema): provide actual type name for root field (#5931)
* fix(filterSchema): provide actual type name for root field * add changeset
1 parent d4395dd commit baf3c28

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

.changeset/warm-ducks-smash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@graphql-tools/utils": patch
3+
---
4+
5+
fix filterSchema argument filter for schema with non-default root types

packages/utils/src/filterSchema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ function filterRootFields(
9494
delete config.fields[fieldName];
9595
} else if (argumentFilter && field.args) {
9696
for (const argName in field.args) {
97-
if (!argumentFilter(operation, fieldName, argName, field.args[argName])) {
97+
if (!argumentFilter(type.name, fieldName, argName, field.args[argName])) {
9898
delete field.args[argName];
9999
}
100100
}

packages/utils/tests/filterSchema.test.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,4 +236,33 @@ describe('filterSchema', () => {
236236
['field'].args.map(arg => arg.name),
237237
).toEqual(['keep']);
238238
});
239+
240+
it('filters root field arguments for non-default query type', () => {
241+
const schema = makeExecutableSchema({
242+
typeDefs: /* GraphQL */ `
243+
schema {
244+
query: Root
245+
}
246+
type Root {
247+
field(keep: String, omit: String): String
248+
}
249+
`,
250+
});
251+
252+
const filtered = filterSchema({
253+
schema,
254+
argumentFilter(typeName, fieldName, argName) {
255+
if (typeName === 'Root' && fieldName === 'field' && argName === 'omit') {
256+
return false;
257+
}
258+
return true;
259+
},
260+
});
261+
262+
expect(
263+
(filtered.getType('Root') as GraphQLObjectType)
264+
.getFields()
265+
['field'].args.map(arg => arg.name),
266+
).toEqual(['keep']);
267+
});
239268
});

0 commit comments

Comments
 (0)