query
query copied to clipboard
fix(query-core): convert notifyManager from factory function to class
It's not must, but FocusManager, OnlineManager is class. so I thought that NotifyManager should be class consistently
☁️ Nx Cloud Report
CI is running/has finished running commands for commit bc88bf4e1e0fe0a70701fc81bc97d83644e651dc. As they complete they will appear below. Click to see the status, the terminal output, and the build insights.
📂 See all runs for this CI Pipeline Execution
| 🟥 Failed Commands |
|---|
nx affected --targets=test:sherif,test:knip,test:eslint,test:lib,test:types,test:build,build --parallel=3 |
✅ Successfully ran 1 target
Sent with 💌 from NxCloud.
More templates
- @tanstack/query-example-angular-basic
- @tanstack/query-example-angular-infinite-query-with-max-pages
- @tanstack/query-example-angular-router
- @tanstack/query-example-angular-simple
- @tanstack/query-example-solid-astro
- @tanstack/query-example-solid-basic
- @tanstack/query-example-solid-basic-graphql-request
- @tanstack/query-example-solid-default-query-function
- @tanstack/query-example-solid-simple
- @tanstack/query-example-solid-start-streaming
- @tanstack/query-example-svelte-auto-refetching
- @tanstack/query-example-svelte-basic
- @tanstack/query-example-svelte-load-more-infinite-scroll
- @tanstack/query-example-svelte-optimistic-updates
- @tanstack/query-example-svelte-playground
- @tanstack/query-example-svelte-simple
- @tanstack/query-example-svelte-ssr
- @tanstack/query-example-svelte-star-wars
- @tanstack/query-example-react-algolia
- @tanstack/query-example-react-auto-refetching
- @tanstack/query-example-react-basic
- @tanstack/query-example-react-basic-graphql-request
- @tanstack/query-example-react-default-query-function
- @tanstack/query-example-react-devtools-panel
- @tanstack/query-example-react-infinite-query-with-max-pages
- @tanstack/query-example-react-load-more-infinite-scroll
- @tanstack/query-example-react-nextjs
- @tanstack/query-example-react-nextjs-app-prefetching
- @tanstack/query-example-nextjs-suspense-streaming
- @tanstack/query-example-react-offline
- @tanstack/query-example-react-optimistic-updates-cache
- @tanstack/query-example-react-optimistic-updates-ui
- @tanstack/query-example-react-pagination
- @tanstack/query-example-react-playground
- @tanstack/query-example-react-prefetching
- @tanstack/query-example-react-react-native
- @tanstack/query-example-react-router
- @tanstack/query-example-react-rick-morty
- @tanstack/query-example-react-shadow-dom
- @tanstack/query-example-react-simple
- @tanstack/query-example-react-suspense
- @tanstack/query-example-vue-2.6-basic
- @tanstack/query-example-vue-2.7-basic
- @tanstack/query-example-vue-basic
- @tanstack/query-example-vue-dependent-queries
- @tanstack/query-example-vue-nuxt3
- @tanstack/query-example-vue-persister
- @tanstack/query-example-vue-simple
- @tanstack/query-example-react-star-wars
@tanstack/eslint-plugin-query
pnpm add https://pkg.pr.new/@tanstack/eslint-plugin-query@7935
@tanstack/angular-query-experimental
pnpm add https://pkg.pr.new/@tanstack/angular-query-experimental@7935
@tanstack/query-async-storage-persister
pnpm add https://pkg.pr.new/@tanstack/query-async-storage-persister@7935
@tanstack/query-broadcast-client-experimental
pnpm add https://pkg.pr.new/@tanstack/query-broadcast-client-experimental@7935
@tanstack/query-core
pnpm add https://pkg.pr.new/@tanstack/query-core@7935
@tanstack/query-devtools
pnpm add https://pkg.pr.new/@tanstack/query-devtools@7935
@tanstack/query-persist-client-core
pnpm add https://pkg.pr.new/@tanstack/query-persist-client-core@7935
@tanstack/query-sync-storage-persister
pnpm add https://pkg.pr.new/@tanstack/query-sync-storage-persister@7935
@tanstack/react-query
pnpm add https://pkg.pr.new/@tanstack/react-query@7935
@tanstack/react-query-devtools
pnpm add https://pkg.pr.new/@tanstack/react-query-devtools@7935
@tanstack/react-query-next-experimental
pnpm add https://pkg.pr.new/@tanstack/react-query-next-experimental@7935
@tanstack/react-query-persist-client
pnpm add https://pkg.pr.new/@tanstack/react-query-persist-client@7935
@tanstack/solid-query
pnpm add https://pkg.pr.new/@tanstack/solid-query@7935
@tanstack/solid-query-devtools
pnpm add https://pkg.pr.new/@tanstack/solid-query-devtools@7935
@tanstack/solid-query-persist-client
pnpm add https://pkg.pr.new/@tanstack/solid-query-persist-client@7935
@tanstack/svelte-query
pnpm add https://pkg.pr.new/@tanstack/svelte-query@7935
@tanstack/svelte-query-devtools
pnpm add https://pkg.pr.new/@tanstack/svelte-query-devtools@7935
@tanstack/svelte-query-persist-client
pnpm add https://pkg.pr.new/@tanstack/svelte-query-persist-client@7935
@tanstack/vue-query
pnpm add https://pkg.pr.new/@tanstack/vue-query@7935
@tanstack/vue-query-devtools
pnpm add https://pkg.pr.new/@tanstack/vue-query-devtools@7935
@tanstack/angular-query-devtools-experimental
pnpm add https://pkg.pr.new/@tanstack/angular-query-devtools-experimental@7935
commit: bc88bf4
Codecov Report
Attention: Patch coverage is 96.96970% with 1 line in your changes missing coverage. Please review.
Project coverage is 61.85%. Comparing base (
0f86b4d) to head (24c0383). Report is 4 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #7935 +/- ##
===========================================
+ Coverage 44.51% 61.85% +17.33%
===========================================
Files 195 134 -61
Lines 7279 4679 -2600
Branches 1629 1304 -325
===========================================
- Hits 3240 2894 -346
+ Misses 3662 1543 -2119
+ Partials 377 242 -135
I remember moving this to a function because it was significantly smaller in bundle size. Can you check the size differences please?
I remember moving this to a function because it was significantly smaller in bundle size. Can you check the size differences please?
Okay, I'll check
Size differences
I don't think it will increase significantly. We can expect library users to minify notifyManager through their bundlers for each service, and if so, we can expect the difference to be even smaller.
AS IS: factory function
TO BE: class with jsdoc
modern: 773,829 bytes -> 775,039 bytes (+1210 bytes) modern/notifyManager.js: 1,534 bytes -> 2,193 bytes (+659 bytes)
JSDoc differences (What I want to focus)
But In my opinion, the biggest difference, other than the size, is that jsdoc in notifyManager is not included when it is a factory function (To include jsdoc, we should attatch jsdoc on return position
function createNotifyManager(){
/**
* this jsdoc will be removed on notifyManager when build time
*/
const batch = <T>(callback: () => T): T => {
// ...
}
// ...
return {
/**
* jsdoc should be on this position, not function definition position
*/
batch,
batchCalls,
schedule,
setNotifyFunction,
setBatchNotifyFunction,
setScheduler,
} as const
}
). notifyManager is a public API of @tanstack/query-core and I thought it would be a more useful choice to keep the jsdoc where each method is used rather than having it disappear.
AS IS: factory function (jsdoc of methods will be disappeared)
setBatchNotifyFunction or other methods' jsdoc will be removed
TO BE: class (jsdoc of methods will be restored)
setBatchNotifyFunction or other methods' jsdoc will be restored
TO BE: class without jsdoc
modern: 773,829 bytes -> 772,227 bytes (-1602 bytes) modern/notifyManager.js: 1,534 bytes -> 1,739 bytes (+205 bytes)
@TkDodo I'm curious about your opinion on this.
I think we can rather move the jsdoc, or even inline the functions into the return statement:
return {
batch: <T>(callback: () => T): T => { ... }
}
we also don't really have any meaningful jsdocs here.