Add custom directive introspection and repeatable directive validation#471
Merged
hlship merged 4 commits intowalmartlabs:masterfrom Oct 17, 2025
Conversation
hlship
approved these changes
Oct 17, 2025
Member
hlship
left a comment
There was a problem hiding this comment.
It's a lot to take in, but the fact that existing tests are unchanged, and the new tests identify what's been added, gives me some confidence.
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.
Summary
Changes
resolve-root-schemato include custom directives from schema__DirectiveLocationenum values (executable + type system)Test plan
Future improvements
The following items could be addressed in future PRs to improve directive architecture consistency:
Refactor directive definition structure for consistency - Currently directive definitions are scattered across parser (
builtin-directives) and schema compilation (compile-directive-defs). This could be unified into a single source of truth.Consolidate builtin directives across parser and schema compilation -
@skip,@includeare defined in parser while@deprecatedis in schema compilation. All builtin directives should be managed in one place.Ensure @Skip and @include are properly defined in schema directive-defs - Executable directives should also be included in schema's directive-defs for consistency, rather than being handled separately in parser.
Addresses the documentation note: "custom directives are not identified" in introspection.