[unused-fields] Add option to check leave fields only#95
Open
janicduplessis wants to merge 2 commits into
Open
[unused-fields] Add option to check leave fields only#95janicduplessis wants to merge 2 commits into
janicduplessis wants to merge 2 commits into
Conversation
|
+1, we have the same problem. We'd like to use a helper to extract nodes from a connection and it generates false positives. The reasoning seems sound - if leaves are being used then the intermediary nodes are being used implicitly, even if the code can't detect it reliably. It would be great if this could get merged. |
Comment on lines
+132
to
+138
| { | ||
| code: ` | ||
| graphql\`fragment Test on Page { unused1 { unused2 } }\`; | ||
| `, | ||
| options: [{leavesOnly: true}], | ||
| errors: [unusedFieldsWarning('unused2')] | ||
| }, |
There was a problem hiding this comment.
does it works well if we use options, for some reason, as [{leavesOnly: true}, ignoreFields: ['unsed2']]?
I think that can add a new test
{
code: `
graphql\`fragment Test on Page { unused1 { unused2 } }\`;
`,
options: [{leavesOnly: true}, ignoreFields: ['unsed2']],
},
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds on top of #94 for option parsing code. Check commit 8d0773f only.
Motivation
This makes it so we only check leave fields, I'm not sure if there is actually cases where checking non-leaves is useful, so I left it as an option. If there are not we could make this the default. There are cases where non leave fields are never accessed because of helper functions in other files.
For example I use a
useConnectionArrayhook to transform a connection to an array. This will currently trigger the unused field rule since the current file never accessesedgesandnode.Example:
Test plan
Tested on a large relay codebase and added tests.