Background
I asked a question on StackOverflow today here.
I thunk about it harder afterwards and decided that this is a discussion worthy of a Git issue.
Problem
Any error gets thrown in getDataFromTree.
Expected/Proposed Behaviour
Return the data with an error Array, without throwing an error.
Why?
Our GraphQL server speaks to multiple APIs and returns a graphQL response which is handled by Apollo UI.
Certain GraphQL errors are not considered critical, and we want to still render a page with it. E.g.
data: {
thing: {
id: "1234"
name: "Thing"
nonCriticalData: null
},
error: {
graphQLErrors: [
path: ['thing', 'nonCriticalData']
]
}
With the above response we get from apollo, we want to still render a page with thing.
I have followed #488 (comment) and got to this point.
In my mind the errors should be returned and not thrown unless necessary, because not all errors are equal.
Ideally I would like to do the following
getDataFromTree(app)
.then(() => {
const content = ReactDOMServer.renderToString(app);
const { data } = client.getInitialState(); <------ Data (with errors)
// check for expected errors and render
return renderPage(data);
})
.catch(error => {
// handle unexpected errors
});
Version
P.S. Thanks for an awesome library. Happy to help out if needed.