query icon indicating copy to clipboard operation
query copied to clipboard

refactor: standardize use of MaybePromise<T> in place of Promise<T> | T

Open braden-w opened this issue 8 months ago • 4 comments

This commit builds on the changes introduced in refactor/narrow-callback-types and replaces all instances of Promise<T> | T with the new MaybePromise<T> helper type. The MaybePromise type, originally defined in @tanstack/query-persist-client-core/src/createPersister.ts, is now moved to query-core for broader, consistent use.

  • Moves the MaybePromise type definition to query-core, making it the canonical utility for representing values that may be returned synchronously or as a promise.
  • Updates all relevant callback signatures (such as onSuccess, onError, onMutate, onSettled, and other callbacks) to use MaybePromise<T> instead of Promise<T> | T.
  • Updates documentation to reference MaybePromise<T> for clarity and consistency.

This builds on the direction set by refactor/narrow-callback-types, further improving type readability and maintainability by using a single, expressive type for all maybe-async callback returns.

braden-w avatar May 28 '25 07:05 braden-w

View your CI Pipeline Execution ↗ for commit c3e3026aa3d06cfcb671ac553ced7946f63508e4.

Command Status Duration Result
nx affected --targets=test:sherif,test:knip,tes... ✅ Succeeded 2m 24s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 55s View ↗

☁️ Nx Cloud last updated this comment at 2025-06-09 06:28:33 UTC

nx-cloud[bot] avatar May 28 '25 07:05 nx-cloud[bot]

More templates

@tanstack/angular-query-devtools-experimental

npm i https://pkg.pr.new/@tanstack/angular-query-devtools-experimental@9203
@tanstack/angular-query-experimental

npm i https://pkg.pr.new/@tanstack/angular-query-experimental@9203
@tanstack/eslint-plugin-query

npm i https://pkg.pr.new/@tanstack/eslint-plugin-query@9203
@tanstack/query-async-storage-persister

npm i https://pkg.pr.new/@tanstack/query-async-storage-persister@9203
@tanstack/query-broadcast-client-experimental

npm i https://pkg.pr.new/@tanstack/query-broadcast-client-experimental@9203
@tanstack/query-core

npm i https://pkg.pr.new/@tanstack/query-core@9203
@tanstack/query-devtools

npm i https://pkg.pr.new/@tanstack/query-devtools@9203
@tanstack/query-persist-client-core

npm i https://pkg.pr.new/@tanstack/query-persist-client-core@9203
@tanstack/query-sync-storage-persister

npm i https://pkg.pr.new/@tanstack/query-sync-storage-persister@9203
@tanstack/react-query

npm i https://pkg.pr.new/@tanstack/react-query@9203
@tanstack/react-query-devtools

npm i https://pkg.pr.new/@tanstack/react-query-devtools@9203
@tanstack/react-query-next-experimental

npm i https://pkg.pr.new/@tanstack/react-query-next-experimental@9203
@tanstack/react-query-persist-client

npm i https://pkg.pr.new/@tanstack/react-query-persist-client@9203
@tanstack/solid-query

npm i https://pkg.pr.new/@tanstack/solid-query@9203
@tanstack/solid-query-devtools

npm i https://pkg.pr.new/@tanstack/solid-query-devtools@9203
@tanstack/solid-query-persist-client

npm i https://pkg.pr.new/@tanstack/solid-query-persist-client@9203
@tanstack/svelte-query

npm i https://pkg.pr.new/@tanstack/svelte-query@9203
@tanstack/svelte-query-devtools

npm i https://pkg.pr.new/@tanstack/svelte-query-devtools@9203
@tanstack/svelte-query-persist-client

npm i https://pkg.pr.new/@tanstack/svelte-query-persist-client@9203
@tanstack/vue-query

npm i https://pkg.pr.new/@tanstack/vue-query@9203
@tanstack/vue-query-devtools

npm i https://pkg.pr.new/@tanstack/vue-query-devtools@9203

commit: c3e3026

pkg-pr-new[bot] avatar May 28 '25 08:05 pkg-pr-new[bot]

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 59.68%. Comparing base (10b4c2f) to head (c3e3026).

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##             main    #9203       +/-   ##
===========================================
+ Coverage   45.37%   59.68%   +14.31%     
===========================================
  Files         207      136       -71     
  Lines        8276     5514     -2762     
  Branches     1863     1486      -377     
===========================================
- Hits         3755     3291      -464     
+ Misses       4080     1925     -2155     
+ Partials      441      298      -143     
Components Coverage Δ
@tanstack/angular-query-devtools-experimental ∅ <ø> (∅)
@tanstack/angular-query-experimental 85.00% <ø> (ø)
@tanstack/eslint-plugin-query ∅ <ø> (∅)
@tanstack/query-async-storage-persister 43.85% <ø> (ø)
@tanstack/query-broadcast-client-experimental 24.39% <ø> (ø)
@tanstack/query-codemods ∅ <ø> (∅)
@tanstack/query-core 98.15% <ø> (ø)
@tanstack/query-devtools 3.55% <ø> (ø)
@tanstack/query-persist-client-core 79.47% <ø> (ø)
@tanstack/query-sync-storage-persister 84.61% <ø> (ø)
@tanstack/query-test-utils ∅ <ø> (∅)
@tanstack/react-query 95.93% <ø> (ø)
@tanstack/react-query-devtools 10.00% <ø> (ø)
@tanstack/react-query-next-experimental ∅ <ø> (∅)
@tanstack/react-query-persist-client 100.00% <ø> (ø)
@tanstack/solid-query 78.13% <ø> (ø)
@tanstack/solid-query-devtools ∅ <ø> (∅)
@tanstack/solid-query-persist-client 100.00% <ø> (ø)
@tanstack/svelte-query 88.07% <ø> (ø)
@tanstack/svelte-query-devtools ∅ <ø> (∅)
@tanstack/svelte-query-persist-client 100.00% <100.00%> (ø)
@tanstack/vue-query 71.10% <ø> (ø)
@tanstack/vue-query-devtools ∅ <ø> (∅)
:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

codecov[bot] avatar May 28 '25 19:05 codecov[bot]

ah, this conflicts now, even tough it was build on top of your other PR.

TkDodo avatar Jun 02 '25 16:06 TkDodo