fix(javascript): recover GraphQL selection prefixes and validate names (#10065)

fix(javascript): align GraphQL operation grammar
This commit is contained in:
morluto authored and GitHub committed 2026-11-11 18:16:50 +08:00
1 parent f7d564f436
commit d1895841a4
4 files changed
+170 -10

No files matched your search

@@ -456,9 +456,13 @@ RPC client syntax also contributes network endpoint candidates, in both
- `graphql:query`, `graphql:mutation`, and `graphql:subscription` record a
named operation found at the start of a string or cooked template literal —
the name must be followed by variable definitions (`($`), a directive, or a
selection set starting with a field name — or in a precompiled
`OperationDefinition` document object. A standalone Source object's `body`
remains an operation candidate even when it has `locationOffset` metadata.
selection set starting with a field, named fragment spread, or inline fragment
— or in a precompiled `OperationDefinition` document object. A precompiled
operation name must be one complete GraphQL Name token (ASCII letters,
digits, and underscores, with no leading digit). Recognition is limited to
static operation headers; it does not validate a complete GraphQL document or
prove that the application sends the operation. A standalone Source object's
`body` remains an operation candidate even when it has `locationOffset` metadata.
A graphql-tag `loc.source.body` copy is suppressed only when that source
belongs to a recovered document with the same operation and its containing
document, location and source have proven private metadata ownership. Writes,