The field named `js` in the schema causes the Relay compiler to fail when this field is requested in the query
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:
> [email protected] 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:
> [email protected] 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
jsfield is removed from the definition ofsrcAppQuery, the query is generated successfully (but obviously without thejsfield included). - The sample project to reproduce the issue is available at https://github.com/SiarheiBarysenka/bug-relay-compiler-js-field .
I was able to reproduce in the compiler explorer.
Likely some bug in our @match validation here or more likely here
Thank you @captbaritone 🙏 Is this something that can be addressed in the foreseeable future?
Hey @captbaritone I wonder if there's any update on this? Thanks!
Hey @captbaritone Is there any updates on the fix timelines for this issue? Thanks.
I don't think we have active plans to work on this this, but folks are welcome to look at the code pointers I shared and work on a fix or at least narrowing down where the issue is. Sorry we don't have bandwidth to fix right now.