Bug: Flow error when using `--eagerESModules` and `@refetchable`
- Dominant language
- Rust
- Stars
- 19k
- Forks
- 1.9k
- PR merge metrics
- No merged PRs in 30d
Description
Hola! π This issue is for Relay 11.0.0. I created a reproducible demo here: https://github.com/mrtnzlml/bug-relay-useRefetchableFragment-flow
Specifically, the issue is with this line: https://github.com/mrtnzlml/bug-relay-useRefetchableFragment-flow/blob/53ee2bf03395037e72ad306f99df801ff4639491/__generated__/bugRelayUseRefetchableFragmentFlow.graphql.js#L36
# Problem
Flow throws an error when generating artifacts with `--eagerESModules` and `@refetchable`:
```text
Error ββββββββββββββββββββββββββββββββββββββββββββββββ __generated__/bugRelayUseRefetchableFragmentFlow.graphql.js:36:20
Cannot assign object literal to node because property bugRelayUseRefetchableFragmentFlowQuery is missing in
ConcreteRequest [1] but exists in module ./bugRelayUseRefetchableFragmentFlowQuery.graphql.js [2] in property
metadata.refetch.operation. [incompatible-type]
__generated__/bugRelayUseRefetchableFragmentFlow.graphql.js
33β "refetch": {
34β "connection": null,
35β "fragmentPathInResult": [],
[2] 36β "operation": require('./bugRelayUseRefetchableFragmentFlowQuery.graphql.js')
37β }
38β },
39β "name": "bugRelayUseRefetchableFragmentFlow",
node_modules/relay-runtime/util/ReaderNode.js.flow
[1] 68β +operation: string | ConcreteRequest,
Found 1 error
```
# Steps to reproduce
1) clone https://github.com/mrtnzlml/bug-relay-useRefetchableFragment-flow
2) `yarn install`
3) `yarn run relay-compiler --src=. --schema=schema.graphql --eagerESModules`
4) `yarn run flow` π₯
# Possible solution
The artifact could be generated with `require(β¦).default` when using `--eagerESModules` option like so:
```diff
"metadata": {
"refetch": {
"connection": null,
"fragmentPathInResult": [],
- "operation": require('./bugRelayUseRefetchableFragmentFlowQuery.graphql.js')
+ "operation": require('./bugRelayUseRefetchableFragmentFlowQuery.graphql.js').default
}
}
```
_(no Flow errors)_
Contributor guide
Assessment
This issue has not been assessed yet.