fix(core): correct useCustom return type to reflect empty object during loading #7093
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.
Summary
useCustomhook'sresult.datapropertyresult.datacan be an empty object during loadingChanges
UseCustomReturnTypeinpackages/core/src/hooks/data/useCustom.tsdatatype fromCustomResponse<TData>["data"]toCustomResponse<TData>["data"] | Record<string, never>Context
The
useCustomhook implementation returns an empty object (EMPTY_OBJECT) forresult.datawhile loading (line 236), but the TypeScript type definition didn't reflect this behavior. This caused TypeScript to not catch potential runtime errors when developers accessed properties onresult.dataduring the loading state.Example
Before this fix, TypeScript would not error on the following code even though it would fail at runtime during loading:
After this fix, TypeScript will correctly require checking if
result.datahas the expected properties before accessing them.Test Plan
result.datauseCustomwith proper loading checks continues to workResolves #7088