From 7ca1f723fb0d26fbde5926b5038f93a8a98ef4c0 Mon Sep 17 00:00:00 2001 From: Dami Oyeniyi Date: Mon, 30 Mar 2026 13:39:34 +0100 Subject: [PATCH 1/3] docs(examples): clean up angular README package manager commands (#10306) --- examples/angular/auto-refetching/README.md | 4 ++-- examples/angular/basic-persister/README.md | 4 ++-- examples/angular/basic/README.md | 4 ++-- examples/angular/devtools-panel/README.md | 4 ++-- examples/angular/infinite-query-with-max-pages/README.md | 4 ++-- examples/angular/optimistic-updates/README.md | 4 ++-- examples/angular/pagination/README.md | 4 ++-- examples/angular/query-options-from-a-service/README.md | 4 ++-- examples/angular/router/README.md | 4 ++-- examples/angular/rxjs/README.md | 4 ++-- examples/angular/simple/README.md | 4 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/examples/angular/auto-refetching/README.md b/examples/angular/auto-refetching/README.md index 571955a305d..4a70c6af6e7 100644 --- a/examples/angular/auto-refetching/README.md +++ b/examples/angular/auto-refetching/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/basic-persister/README.md b/examples/angular/basic-persister/README.md index 47d5931979a..6c79fc36193 100644 --- a/examples/angular/basic-persister/README.md +++ b/examples/angular/basic-persister/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/basic/README.md b/examples/angular/basic/README.md index 15f2ed2f4a2..61eb487a22c 100644 --- a/examples/angular/basic/README.md +++ b/examples/angular/basic/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/devtools-panel/README.md b/examples/angular/devtools-panel/README.md index 849d0a9d4e0..729ce68dc49 100644 --- a/examples/angular/devtools-panel/README.md +++ b/examples/angular/devtools-panel/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/infinite-query-with-max-pages/README.md b/examples/angular/infinite-query-with-max-pages/README.md index fce960f6a35..4f308448f5f 100644 --- a/examples/angular/infinite-query-with-max-pages/README.md +++ b/examples/angular/infinite-query-with-max-pages/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/optimistic-updates/README.md b/examples/angular/optimistic-updates/README.md index 583897ad45d..bcffae54d27 100644 --- a/examples/angular/optimistic-updates/README.md +++ b/examples/angular/optimistic-updates/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/pagination/README.md b/examples/angular/pagination/README.md index fd58c455860..6e113c75664 100644 --- a/examples/angular/pagination/README.md +++ b/examples/angular/pagination/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/query-options-from-a-service/README.md b/examples/angular/query-options-from-a-service/README.md index f9e940480ac..40bce6275f8 100644 --- a/examples/angular/query-options-from-a-service/README.md +++ b/examples/angular/query-options-from-a-service/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/router/README.md b/examples/angular/router/README.md index 0429048cb9c..ea37ad5d945 100644 --- a/examples/angular/router/README.md +++ b/examples/angular/router/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/rxjs/README.md b/examples/angular/rxjs/README.md index bc63a82b7f2..5603b0de263 100644 --- a/examples/angular/rxjs/README.md +++ b/examples/angular/rxjs/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` diff --git a/examples/angular/simple/README.md b/examples/angular/simple/README.md index 35939257ca9..b2acfd071ab 100644 --- a/examples/angular/simple/README.md +++ b/examples/angular/simple/README.md @@ -2,5 +2,5 @@ To run this example: -- `npm install` or `yarn` or `pnpm i` or `bun i` -- `npm run start` or `yarn start` or `pnpm start` or `bun start` +- `pnpm install` +- `pnpm start` From 2dca719ec7e8c280fe5cb98e77b8ddb2d7be518e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=8F=84=ED=98=84?= <101170386+fe-dudu@users.noreply.github.com> Date: Mon, 30 Mar 2026 22:00:23 +0900 Subject: [PATCH 2/3] docs(community-projects): add React Query Visualizer to the list of community projects (#10351) --- docs/community-resources.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/community-resources.md b/docs/community-resources.md index 9b591ba5cd9..3ce503b41a5 100644 --- a/docs/community-resources.md +++ b/docs/community-resources.md @@ -175,6 +175,11 @@ others: url: 'https://github.com/rametta/rapini', description: '🥬 OpenAPI to React Query (or SWR) & Axios', }, + { + title: 'React Query Visualizer', + url: 'https://marketplace.visualstudio.com/items?itemName=fe-dudu.react-query-visualizer', + description: 'VS Code extension for TanStack Query (React Query): visualize query keys, cache invalidation/refetch flows, and file impact graph', + }, { title: 'Tanstack Query Visualizer', url: 'https://tanstack-query-visualizer.sofi.coop/', From 7e5fe214bda1be2d840cf049848dc2f561ed653c Mon Sep 17 00:00:00 2001 From: Zelys Date: Mon, 30 Mar 2026 08:10:17 -0500 Subject: [PATCH 3/3] test(eslint-plugin-query/no-void-query-fn): add coverage for prefetchQuery, prefetchInfiniteQuery, ensureQueryData, ensureInfiniteQueryData (#10353) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Dominik Dorfmeister 🔮 --- .../src/__tests__/no-void-query-fn.test.ts | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts index e26c21de8f6..c47856fbc67 100644 --- a/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/no-void-query-fn.test.ts @@ -215,6 +215,58 @@ ruleTester.run('no-void-query-fn', rule, { }) `, }, + { + name: 'prefetchQuery queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchQuery({ + queryKey: ['test'], + queryFn: () => fetch('/api/test').then((r) => r.json()), + }) + `, + }, + { + name: 'prefetchInfiniteQuery queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchInfiniteQuery({ + queryKey: ['test'], + queryFn: ({ pageParam }: { pageParam: number }) => + fetch(\`/api/test?page=\${pageParam}\`).then((r) => r.json()), + initialPageParam: 0, + }) + `, + }, + { + name: 'ensureQueryData queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureQueryData({ + queryKey: ['test'], + queryFn: () => fetch('/api/test').then((r) => r.json()), + }) + `, + }, + { + name: 'ensureInfiniteQueryData queryFn returns a value', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureInfiniteQueryData({ + queryKey: ['test'], + queryFn: ({ pageParam }: { pageParam: number }) => + fetch(\`/api/test?page=\${pageParam}\`).then((r) => r.json()), + initialPageParam: 0, + }) + `, + }, ], invalid: [ { @@ -439,5 +491,67 @@ ruleTester.run('no-void-query-fn', rule, { `, errors: [{ messageId: 'noVoidReturn' }], }, + { + name: 'prefetchQuery queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchQuery({ + queryKey: ['test'], + queryFn: async () => { + await fetch('/api/test') + }, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'prefetchInfiniteQuery queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.prefetchInfiniteQuery({ + queryKey: ['test'], + queryFn: async ({ pageParam }: { pageParam: number }) => { + await fetch(\`/api/test?page=\${pageParam}\`) + }, + initialPageParam: 0, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'ensureQueryData queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureQueryData({ + queryKey: ['test'], + queryFn: async () => { + await fetch('/api/test') + }, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, + { + name: 'ensureInfiniteQueryData queryFn returns void', + code: normalizeIndent` + import { QueryClient } from '@tanstack/react-query' + + const queryClient = new QueryClient() + queryClient.ensureInfiniteQueryData({ + queryKey: ['test'], + queryFn: async ({ pageParam }: { pageParam: number }) => { + await fetch(\`/api/test?page=\${pageParam}\`) + }, + initialPageParam: 0, + }) + `, + errors: [{ messageId: 'noVoidReturn' }], + }, ], })