Changed typings of updateQuery's previousQueryResult to be potentially undefined #12276
+45
−18
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related to #12228
There's an outstanding issue where
previousQueryResult
sometimes, flakily, ends upundefined
This change aims to have the typings reflect the actual runtime behavior allowing devs to write safe code that can handle the missing
previousQueryResult
An alternative could be to simply not call
mapFn
ifpreviousQueryResult
is missing. While neither is ideal nor fixes the underlying issue of "why"previousQueryResult
isundefined
. At least it would avoid bad crashes.I've been rolling with this patch for years now and I haven't seen any bad side-effects so far. As far as I can tell, the case where
previousQueryResult
can be safely ignored and is likely going to be called again with actual data when it mattersTypings Update for
updateQuery
:updateQuery
'spreviousQueryResult
to be potentially undefined in@apollo/client
.updateQuery
method insrc/core/ObservableQuery.ts
to reflect the new typings.UpdateQueryFn
type insrc/core/watchQueryOptions.ts
to allowpreviousQueryResult
to be undefined.ObservableQueryFields
interface insrc/react/types/types.ts
to reflect the new typings.VSCode Configuration:
editor.codeActionsOnSave
setting to disable organizing imports on save in.vscode/settings.json
.