The field named `js` in the schema causes the Relay compiler to fail when this field is requested in the query
SiarheiBarysenka opened this issue · 5 comments
SiarheiBarysenka commented
Problem
The field named js
in the schema causes the Relay compiler to fail when this field is requested in the query.
Steps to reproduce
- Define the following schema:
type Query {
hello: String
js: String
}
schema {
query: Query
}
- Define the following query:
const query = graphql`
query srcAppQuery {
hello
js
}
`;
- Execute the Relay compiler to generate the query and observe the output in the console.
Expected Result
The query is generated successfully. Expected output in the console:
> bug-relay-compiler-js-field@1.0.0 relay
> relay-compiler
[INFO] [default] compiling...
[INFO] [default] compiled documents: 1 reader, 1 normalization, 1 operation text
[INFO] Compilation completed.
[INFO] Done.
Actual Result
The query generation fails. Actual output in the console:
> bug-relay-compiler-js-field@1.0.0 relay
> relay-compiler
[INFO] [default] compiling...
[ERROR] Error: ✖︎ 'js' should be defined on the server schema.
src/index.ts:6:5
5 │ hello
6 │ js
│ ^^
7 │ }
[ERROR] Compilation failed.
[ERROR] Unable to run relay compiler. Error details:
Failed to build:
- Validation errors: 1 error(s) encountered above.
Notes
- If the
js
field is removed from the definition ofsrcAppQuery
, the query is generated successfully (but obviously without thejs
field included). - The sample project to reproduce the issue is available at https://github.com/SiarheiBarysenka/bug-relay-compiler-js-field .
captbaritone commented
I was able to reproduce in the compiler explorer.
Likely some bug in our @match
validation here or more likely here
SiarheiBarysenka commented
Thank you @captbaritone 🙏 Is this something that can be addressed in the foreseeable future?
SiarheiBarysenka commented
Hey @captbaritone I wonder if there's any update on this? Thanks!