├── .editorconfig ├── .gitattributes ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ └── config.yml ├── labeler.yml ├── renovate.json └── workflows │ ├── autofix.yml │ ├── ci.yml │ ├── labeler.yml │ └── pr.yml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .nx └── workflows │ └── dynamic-changesets.yaml ├── .prettierignore ├── CONTRIBUTING.md ├── FUNDING.json ├── LICENSE ├── README.md ├── codecov.yml ├── docs ├── config.json ├── eslint │ ├── eslint-plugin-query.md │ ├── exhaustive-deps.md │ ├── infinite-query-property-order.md │ ├── no-rest-destructuring.md │ ├── no-unstable-deps.md │ ├── no-void-query-fn.md │ └── stable-query-client.md ├── framework │ ├── angular │ │ ├── angular-httpclient-and-other-data-fetching-clients.md │ │ ├── devtools.md │ │ ├── guides │ │ │ ├── background-fetching-indicators.md │ │ │ ├── caching.md │ │ │ ├── default-query-function.md │ │ │ ├── dependent-queries.md │ │ │ ├── disabling-queries.md │ │ │ ├── does-this-replace-client-state.md │ │ │ ├── filters.md │ │ │ ├── important-defaults.md │ │ │ ├── infinite-queries.md │ │ │ ├── initial-query-data.md │ │ │ ├── invalidations-from-mutations.md │ │ │ ├── mutation-options.md │ │ │ ├── mutations.md │ │ │ ├── network-mode.md │ │ │ ├── optimistic-updates.md │ │ │ ├── paginated-queries.md │ │ │ ├── parallel-queries.md │ │ │ ├── placeholder-query-data.md │ │ │ ├── queries.md │ │ │ ├── query-cancellation.md │ │ │ ├── query-functions.md │ │ │ ├── query-invalidation.md │ │ │ ├── query-keys.md │ │ │ ├── query-options.md │ │ │ ├── query-retries.md │ │ │ ├── scroll-restoration.md │ │ │ └── window-focus-refetching.md │ │ ├── installation.md │ │ ├── overview.md │ │ ├── quick-start.md │ │ ├── reference │ │ │ ├── functions │ │ │ │ ├── infinitequeryoptions.md │ │ │ │ ├── injectinfinitequery.md │ │ │ │ ├── injectisfetching.md │ │ │ │ ├── injectismutating.md │ │ │ │ ├── injectisrestoring.md │ │ │ │ ├── injectmutation.md │ │ │ │ ├── injectmutationstate.md │ │ │ │ ├── injectqueries.md │ │ │ │ ├── injectquery.md │ │ │ │ ├── injectqueryclient.md │ │ │ │ ├── mutationoptions.md │ │ │ │ ├── provideisrestoring.md │ │ │ │ ├── providequeryclient.md │ │ │ │ ├── providetanstackquery.md │ │ │ │ ├── queryfeature.md │ │ │ │ ├── queryoptions.md │ │ │ │ └── withdevtools.md │ │ │ ├── index.md │ │ │ ├── interfaces │ │ │ │ ├── basemutationnarrowing.md │ │ │ │ ├── basequerynarrowing.md │ │ │ │ ├── createbasequeryoptions.md │ │ │ │ ├── createinfinitequeryoptions.md │ │ │ │ ├── createmutationoptions.md │ │ │ │ ├── createqueryoptions.md │ │ │ │ ├── devtoolsoptions.md │ │ │ │ ├── injectinfinitequeryoptions.md │ │ │ │ ├── injectisfetchingoptions.md │ │ │ │ ├── injectismutatingoptions.md │ │ │ │ ├── injectmutationoptions.md │ │ │ │ ├── injectmutationstateoptions.md │ │ │ │ ├── injectqueryoptions.md │ │ │ │ └── queryfeature.md │ │ │ ├── type-aliases │ │ │ │ ├── createbasemutationresult.md │ │ │ │ ├── createbasequeryresult.md │ │ │ │ ├── createinfinitequeryresult.md │ │ │ │ ├── createmutateasyncfunction.md │ │ │ │ ├── createmutatefunction.md │ │ │ │ ├── createmutationresult.md │ │ │ │ ├── createqueryresult.md │ │ │ │ ├── definedcreateinfinitequeryresult.md │ │ │ │ ├── definedcreatequeryresult.md │ │ │ │ ├── definedinitialdatainfiniteoptions.md │ │ │ │ ├── definedinitialdataoptions.md │ │ │ │ ├── developertoolsfeature.md │ │ │ │ ├── persistqueryclientfeature.md │ │ │ │ ├── queriesoptions.md │ │ │ │ ├── queriesresults.md │ │ │ │ ├── queryfeaturekind.md │ │ │ │ ├── queryfeatures.md │ │ │ │ ├── undefinedinitialdatainfiniteoptions.md │ │ │ │ ├── undefinedinitialdataoptions.md │ │ │ │ ├── unusedskiptokeninfiniteoptions.md │ │ │ │ └── unusedskiptokenoptions.md │ │ │ └── variables │ │ │ │ └── queryfeatures.md │ │ ├── typescript.md │ │ └── zoneless.md │ ├── react │ │ ├── community │ │ │ ├── community-projects.md │ │ │ └── tkdodos-blog.md │ │ ├── comparison.md │ │ ├── devtools.md │ │ ├── graphql.md │ │ ├── guides │ │ │ ├── advanced-ssr.md │ │ │ ├── background-fetching-indicators.md │ │ │ ├── caching.md │ │ │ ├── default-query-function.md │ │ │ ├── dependent-queries.md │ │ │ ├── disabling-queries.md │ │ │ ├── does-this-replace-client-state.md │ │ │ ├── filters.md │ │ │ ├── important-defaults.md │ │ │ ├── infinite-queries.md │ │ │ ├── initial-query-data.md │ │ │ ├── invalidations-from-mutations.md │ │ │ ├── migrating-to-react-query-3.md │ │ │ ├── migrating-to-react-query-4.md │ │ │ ├── migrating-to-v5.md │ │ │ ├── mutations.md │ │ │ ├── network-mode.md │ │ │ ├── optimistic-updates.md │ │ │ ├── paginated-queries.md │ │ │ ├── parallel-queries.md │ │ │ ├── placeholder-query-data.md │ │ │ ├── prefetching.md │ │ │ ├── queries.md │ │ │ ├── query-cancellation.md │ │ │ ├── query-functions.md │ │ │ ├── query-invalidation.md │ │ │ ├── query-keys.md │ │ │ ├── query-options.md │ │ │ ├── query-retries.md │ │ │ ├── render-optimizations.md │ │ │ ├── request-waterfalls.md │ │ │ ├── scroll-restoration.md │ │ │ ├── ssr.md │ │ │ ├── suspense.md │ │ │ ├── testing.md │ │ │ ├── updates-from-mutation-responses.md │ │ │ └── window-focus-refetching.md │ │ ├── installation.md │ │ ├── overview.md │ │ ├── plugins │ │ │ ├── broadcastQueryClient.md │ │ │ ├── createAsyncStoragePersister.md │ │ │ ├── createPersister.md │ │ │ ├── createSyncStoragePersister.md │ │ │ └── persistQueryClient.md │ │ ├── quick-start.md │ │ ├── react-native.md │ │ ├── reference │ │ │ ├── QueryClientProvider.md │ │ │ ├── QueryErrorResetBoundary.md │ │ │ ├── hydration.md │ │ │ ├── infiniteQueryOptions.md │ │ │ ├── queryOptions.md │ │ │ ├── useInfiniteQuery.md │ │ │ ├── useIsFetching.md │ │ │ ├── useIsMutating.md │ │ │ ├── useMutation.md │ │ │ ├── useMutationState.md │ │ │ ├── usePrefetchInfiniteQuery.md │ │ │ ├── usePrefetchQuery.md │ │ │ ├── useQueries.md │ │ │ ├── useQuery.md │ │ │ ├── useQueryClient.md │ │ │ ├── useQueryErrorResetBoundary.md │ │ │ ├── useSuspenseInfiniteQuery.md │ │ │ ├── useSuspenseQueries.md │ │ │ └── useSuspenseQuery.md │ │ ├── typescript.md │ │ └── videos.md │ ├── solid │ │ ├── community │ │ │ ├── community-projects.md │ │ │ └── tkdodos-blog.md │ │ ├── devtools.md │ │ ├── guides │ │ │ ├── advanced-ssr.md │ │ │ ├── background-fetching-indicators.md │ │ │ ├── caching.md │ │ │ ├── default-query-function.md │ │ │ ├── dependent-queries.md │ │ │ ├── disabling-queries.md │ │ │ ├── does-this-replace-client-state.md │ │ │ ├── filters.md │ │ │ ├── important-defaults.md │ │ │ ├── infinite-queries.md │ │ │ ├── initial-query-data.md │ │ │ ├── invalidations-from-mutations.md │ │ │ ├── mutations.md │ │ │ ├── network-mode.md │ │ │ ├── optimistic-updates.md │ │ │ ├── paginated-queries.md │ │ │ ├── parallel-queries.md │ │ │ ├── placeholder-query-data.md │ │ │ ├── prefetching.md │ │ │ ├── queries.md │ │ │ ├── query-cancellation.md │ │ │ ├── query-functions.md │ │ │ ├── query-invalidation.md │ │ │ ├── query-keys.md │ │ │ ├── query-options.md │ │ │ ├── query-retries.md │ │ │ ├── request-waterfalls.md │ │ │ ├── scroll-restoration.md │ │ │ ├── ssr.md │ │ │ ├── suspense.md │ │ │ ├── testing.md │ │ │ ├── updates-from-mutation-responses.md │ │ │ └── window-focus-refetching.md │ │ ├── installation.md │ │ ├── overview.md │ │ ├── plugins │ │ │ ├── broadcastQueryClient.md │ │ │ └── createPersister.md │ │ ├── quick-start.md │ │ ├── reference │ │ │ ├── hydration.md │ │ │ ├── infiniteQueryOptions.md │ │ │ ├── queryOptions.md │ │ │ ├── useInfiniteQuery.md │ │ │ ├── useIsFetching.md │ │ │ ├── useIsMutating.md │ │ │ ├── useMutation.md │ │ │ ├── useMutationState.md │ │ │ ├── useQueries.md │ │ │ └── useQuery.md │ │ └── typescript.md │ ├── svelte │ │ ├── devtools.md │ │ ├── installation.md │ │ ├── overview.md │ │ ├── reactivity.md │ │ ├── reference │ │ │ ├── functions │ │ │ │ ├── createinfinitequery.md │ │ │ │ ├── createmutation.md │ │ │ │ ├── createqueries.md │ │ │ │ ├── createquery.md │ │ │ │ ├── getisrestoringcontext.md │ │ │ │ ├── getqueryclientcontext.md │ │ │ │ ├── infinitequeryoptions.md │ │ │ │ ├── queryoptions.md │ │ │ │ ├── setisrestoringcontext.md │ │ │ │ ├── setqueryclientcontext.md │ │ │ │ ├── usehydrate.md │ │ │ │ ├── useisfetching.md │ │ │ │ ├── useismutating.md │ │ │ │ ├── useisrestoring.md │ │ │ │ ├── usemutationstate.md │ │ │ │ └── usequeryclient.md │ │ │ ├── index.md │ │ │ ├── type-aliases │ │ │ │ ├── createbasemutationresult.md │ │ │ │ ├── createbasequeryoptions.md │ │ │ │ ├── createbasequeryresult.md │ │ │ │ ├── createinfinitequeryoptions.md │ │ │ │ ├── createinfinitequeryresult.md │ │ │ │ ├── createmutateasyncfunction.md │ │ │ │ ├── createmutatefunction.md │ │ │ │ ├── createmutationoptions.md │ │ │ │ ├── createmutationresult.md │ │ │ │ ├── createqueryoptions.md │ │ │ │ ├── createqueryresult.md │ │ │ │ ├── definedcreatebasequeryresult.md │ │ │ │ ├── definedcreatequeryresult.md │ │ │ │ ├── definedinitialdataoptions.md │ │ │ │ ├── hydrationboundary.md │ │ │ │ ├── mutationstateoptions.md │ │ │ │ ├── queriesoptions.md │ │ │ │ ├── queriesresults.md │ │ │ │ ├── storeorval.md │ │ │ │ └── undefinedinitialdataoptions.md │ │ │ └── variables │ │ │ │ └── hydrationboundary.md │ │ └── ssr.md │ └── vue │ │ ├── community │ │ ├── community-projects.md │ │ └── tkdodos-blog.md │ │ ├── devtools.md │ │ ├── graphql.md │ │ ├── guides │ │ ├── background-fetching-indicators.md │ │ ├── caching.md │ │ ├── custom-client.md │ │ ├── default-query-function.md │ │ ├── dependent-queries.md │ │ ├── disabling-queries.md │ │ ├── does-this-replace-client-state.md │ │ ├── filters.md │ │ ├── important-defaults.md │ │ ├── infinite-queries.md │ │ ├── initial-query-data.md │ │ ├── invalidations-from-mutations.md │ │ ├── migrating-to-v5.md │ │ ├── mutations.md │ │ ├── network-mode.md │ │ ├── optimistic-updates.md │ │ ├── paginated-queries.md │ │ ├── parallel-queries.md │ │ ├── placeholder-query-data.md │ │ ├── prefetching.md │ │ ├── queries.md │ │ ├── query-cancellation.md │ │ ├── query-functions.md │ │ ├── query-invalidation.md │ │ ├── query-keys.md │ │ ├── query-options.md │ │ ├── query-retries.md │ │ ├── scroll-restoration.md │ │ ├── ssr.md │ │ ├── suspense.md │ │ ├── testing.md │ │ ├── updates-from-mutation-responses.md │ │ └── window-focus-refetching.md │ │ ├── installation.md │ │ ├── overview.md │ │ ├── plugins │ │ ├── broadcastQueryClient.md │ │ └── createPersister.md │ │ ├── quick-start.md │ │ ├── reactivity.md │ │ ├── reference │ │ ├── hydration.md │ │ ├── infiniteQueryOptions.md │ │ ├── queryOptions.md │ │ ├── useInfiniteQuery.md │ │ ├── useIsFetching.md │ │ ├── useIsMutating.md │ │ ├── useMutation.md │ │ ├── useMutationState.md │ │ ├── useQueries.md │ │ ├── useQuery.md │ │ └── useQueryClient.md │ │ └── typescript.md └── reference │ ├── InfiniteQueryObserver.md │ ├── MutationCache.md │ ├── QueriesObserver.md │ ├── QueryCache.md │ ├── QueryClient.md │ ├── QueryObserver.md │ ├── focusManager.md │ ├── notifyManager.md │ ├── onlineManager.md │ └── streamedQuery.md ├── eslint.config.js ├── examples ├── angular │ ├── auto-refetching │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── .eslintrc.cjs │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── components │ │ │ │ │ ├── auto-refetching.component.html │ │ │ │ │ └── auto-refetching.component.ts │ │ │ │ ├── interceptor │ │ │ │ │ └── mock-api.interceptor.ts │ │ │ │ └── services │ │ │ │ │ └── tasks.service.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── basic-persister │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── .eslintrc.cjs │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── components │ │ │ │ │ ├── post.component.html │ │ │ │ │ ├── post.component.ts │ │ │ │ │ ├── posts.component.html │ │ │ │ │ └── posts.component.ts │ │ │ │ └── services │ │ │ │ │ └── posts-service.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── basic │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── .eslintrc.cjs │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── components │ │ │ │ │ ├── post.component.html │ │ │ │ │ ├── post.component.ts │ │ │ │ │ ├── posts.component.html │ │ │ │ │ └── posts.component.ts │ │ │ │ └── services │ │ │ │ │ └── posts-service.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── devtools-panel │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── app.routes.ts │ │ │ │ └── components │ │ │ │ │ ├── basic-devtools-panel-example.component.ts │ │ │ │ │ ├── example-query.component.ts │ │ │ │ │ └── lazy-load-devtools-panel-example.component.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── infinite-query-with-max-pages │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── .eslintrc.cjs │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── api │ │ │ │ │ └── projects-mock.interceptor.ts │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── components │ │ │ │ │ ├── example.component.html │ │ │ │ │ └── example.component.ts │ │ │ │ ├── directives │ │ │ │ │ └── project-style.directive.ts │ │ │ │ └── services │ │ │ │ │ └── projects.service.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── optimistic-updates │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── .eslintrc.cjs │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── components │ │ │ │ │ └── optimistic-updates.component.ts │ │ │ │ ├── interceptor │ │ │ │ │ └── mock-api.interceptor.ts │ │ │ │ └── services │ │ │ │ │ └── tasks.service.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── pagination │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── api │ │ │ │ │ └── projects-mock.interceptor.ts │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── components │ │ │ │ │ ├── example.component.html │ │ │ │ │ └── example.component.ts │ │ │ │ └── services │ │ │ │ │ └── projects.service.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── query-options-from-a-service │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── .eslintrc.cjs │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── app.routes.ts │ │ │ │ ├── components │ │ │ │ │ ├── post.component.html │ │ │ │ │ ├── post.component.ts │ │ │ │ │ ├── posts.component.html │ │ │ │ │ └── posts.component.ts │ │ │ │ └── services │ │ │ │ │ └── queries-service.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── router │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── .eslintrc.cjs │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── app.routes.ts │ │ │ │ ├── components │ │ │ │ │ ├── post.component.html │ │ │ │ │ ├── post.component.ts │ │ │ │ │ ├── posts.component.html │ │ │ │ │ └── posts.component.ts │ │ │ │ └── services │ │ │ │ │ └── posts-service.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── rxjs │ │ ├── .devcontainer │ │ │ └── devcontainer.json │ │ ├── .eslintrc.cjs │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── api │ │ │ │ │ └── autocomplete-mock.interceptor.ts │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.config.ts │ │ │ │ ├── components │ │ │ │ │ ├── example.component.html │ │ │ │ │ └── example.component.ts │ │ │ │ └── services │ │ │ │ │ └── autocomplete-service.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── main.ts │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ └── simple │ │ ├── .devcontainer │ │ └── devcontainer.json │ │ ├── .eslintrc.cjs │ │ ├── README.md │ │ ├── angular.json │ │ ├── package.json │ │ ├── src │ │ ├── app │ │ │ ├── app.component.ts │ │ │ ├── app.config.ts │ │ │ └── components │ │ │ │ ├── simple-example.component.html │ │ │ │ └── simple-example.component.ts │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── main.ts │ │ └── styles.css │ │ ├── tsconfig.app.json │ │ └── tsconfig.json ├── react │ ├── algolia │ │ ├── .gitignore │ │ ├── README.md │ │ ├── eslint.config.js │ │ ├── index.html │ │ ├── package.json │ │ ├── src │ │ │ ├── App.tsx │ │ │ ├── Search.tsx │ │ │ ├── SearchResults.tsx │ │ │ ├── algolia.ts │ │ │ ├── index.tsx │ │ │ ├── styles.css │ │ │ └── useAlgolia.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── auto-refetching │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── src │ │ │ └── pages │ │ │ │ ├── api │ │ │ │ └── data.ts │ │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── basic-graphql-request │ │ ├── .gitignore │ │ ├── README.md │ │ ├── eslint.config.js │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── basic │ │ ├── .gitignore │ │ ├── README.md │ │ ├── eslint.config.js │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── chat │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ ├── chat.ts │ │ │ ├── index.tsx │ │ │ ├── message.tsx │ │ │ └── style.css │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── default-query-function │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── devtools-panel │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── eslint-legacy │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── infinite-query-with-max-pages │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── src │ │ │ └── pages │ │ │ │ ├── api │ │ │ │ └── projects.ts │ │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── load-more-infinite-scroll │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── src │ │ │ └── pages │ │ │ │ ├── about.tsx │ │ │ │ ├── api │ │ │ │ └── projects.ts │ │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── nextjs-app-prefetching │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app │ │ │ ├── favicon.ico │ │ │ ├── get-query-client.ts │ │ │ ├── layout.tsx │ │ │ ├── page.tsx │ │ │ ├── pokemon-info.tsx │ │ │ ├── pokemon.ts │ │ │ └── providers.tsx │ │ ├── next.config.js │ │ ├── package.json │ │ └── tsconfig.json │ ├── nextjs-suspense-streaming │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── src │ │ │ └── app │ │ │ │ ├── api │ │ │ │ └── wait │ │ │ │ │ └── route.ts │ │ │ │ ├── layout.tsx │ │ │ │ ├── page.tsx │ │ │ │ └── providers.tsx │ │ └── tsconfig.json │ ├── nextjs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── src │ │ │ ├── components │ │ │ │ ├── Header.tsx │ │ │ │ ├── InfoBox.tsx │ │ │ │ ├── Layout.tsx │ │ │ │ ├── PostList.tsx │ │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ │ └── usePosts.ts │ │ │ └── pages │ │ │ │ ├── _app.tsx │ │ │ │ ├── client-only.tsx │ │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── offline │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── mockServiceWorker.js │ │ ├── src │ │ │ ├── App.tsx │ │ │ ├── api.ts │ │ │ ├── index.tsx │ │ │ └── movies.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── optimistic-updates-cache │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── src │ │ │ └── pages │ │ │ │ ├── api │ │ │ │ └── data.ts │ │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── optimistic-updates-ui │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── src │ │ │ └── pages │ │ │ │ ├── api │ │ │ │ └── data.ts │ │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── pagination │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── src │ │ │ └── pages │ │ │ │ ├── api │ │ │ │ └── projects.ts │ │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── playground │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ ├── index.tsx │ │ │ └── styles.css │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── prefetching │ │ ├── .gitignore │ │ ├── README.md │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── src │ │ │ └── pages │ │ │ │ ├── [user] │ │ │ │ └── [repo].tsx │ │ │ │ ├── _app.tsx │ │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── react-native │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── App.tsx │ │ ├── README.md │ │ ├── app.json │ │ ├── assets │ │ │ ├── adaptive-icon.png │ │ │ ├── favicon.png │ │ │ ├── icon.png │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── package.json │ │ ├── src │ │ │ ├── components │ │ │ │ ├── Divider.tsx │ │ │ │ ├── ErrorMessage.tsx │ │ │ │ ├── ListItem.tsx │ │ │ │ └── LoadingIndicator.tsx │ │ │ ├── data │ │ │ │ └── movies.json │ │ │ ├── hooks │ │ │ │ ├── useAppState.ts │ │ │ │ ├── useOnlineManager.ts │ │ │ │ ├── useRefreshByUser.ts │ │ │ │ └── useRefreshOnFocus.ts │ │ │ ├── lib │ │ │ │ └── api.ts │ │ │ ├── navigation │ │ │ │ ├── MoviesStack.tsx │ │ │ │ └── types.ts │ │ │ └── screens │ │ │ │ ├── MovieDetailsScreen.tsx │ │ │ │ └── MoviesListScreen.tsx │ │ └── tsconfig.json │ ├── react-router │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ ├── contacts.ts │ │ │ ├── error-page.tsx │ │ │ ├── index.css │ │ │ ├── index.tsx │ │ │ └── routes │ │ │ │ ├── contact.tsx │ │ │ │ ├── destroy.tsx │ │ │ │ ├── edit.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── new.tsx │ │ │ │ └── root.tsx │ │ └── tsconfig.json │ ├── rick-morty │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ ├── App.tsx │ │ │ ├── Character.jsx │ │ │ ├── Characters.jsx │ │ │ ├── Episode.jsx │ │ │ ├── Episodes.jsx │ │ │ ├── Home.jsx │ │ │ ├── Layout.tsx │ │ │ ├── fetch.jsx │ │ │ ├── index.tsx │ │ │ └── styles.css │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── shadow-dom │ │ ├── .gitignore │ │ ├── README.md │ │ ├── eslint.config.js │ │ ├── index.html │ │ ├── package.json │ │ ├── src │ │ │ ├── DogList.tsx │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── simple │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── star-wars │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── emblem-light.svg │ │ ├── src │ │ │ ├── App.tsx │ │ │ ├── Character.jsx │ │ │ ├── Characters.jsx │ │ │ ├── Film.jsx │ │ │ ├── Films.jsx │ │ │ ├── Home.jsx │ │ │ ├── Layout.tsx │ │ │ ├── fetch.jsx │ │ │ ├── index.tsx │ │ │ └── styles.css │ │ ├── tsconfig.json │ │ └── vite.config.ts │ └── suspense │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ └── emblem-light.svg │ │ ├── src │ │ ├── components │ │ │ ├── Button.tsx │ │ │ ├── Project.tsx │ │ │ ├── Projects.tsx │ │ │ └── Spinner.tsx │ │ ├── index.tsx │ │ └── queries.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts ├── solid │ ├── astro │ │ ├── .gitignore │ │ ├── README.md │ │ ├── astro.config.mjs │ │ ├── package.json │ │ ├── public │ │ │ └── favicon.svg │ │ ├── src │ │ │ ├── components │ │ │ │ ├── Link.tsx │ │ │ │ └── SolidApp.tsx │ │ │ ├── env.d.ts │ │ │ ├── layouts │ │ │ │ └── MainLayout.astro │ │ │ ├── pages │ │ │ │ └── index.astro │ │ │ └── utils │ │ │ │ └── index.ts │ │ ├── tailwind.config.mjs │ │ └── tsconfig.json │ ├── basic-graphql-request │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src │ │ │ ├── assets │ │ │ │ └── favicon.ico │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── basic │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src │ │ │ ├── assets │ │ │ │ └── favicon.ico │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── default-query-function │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src │ │ │ ├── assets │ │ │ │ └── favicon.ico │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── simple │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src │ │ │ ├── assets │ │ │ │ └── favicon.ico │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ └── solid-start-streaming │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app.config.ts │ │ ├── package.json │ │ ├── public │ │ ├── favicon.ico │ │ └── imgs │ │ │ ├── deferred.png │ │ │ └── streaming.png │ │ ├── src │ │ ├── app.css │ │ ├── app.tsx │ │ ├── components │ │ │ ├── example.tsx │ │ │ ├── post-viewer.tsx │ │ │ ├── query-boundary.tsx │ │ │ └── user-info.tsx │ │ ├── entry-client.tsx │ │ ├── entry-server.tsx │ │ ├── global.d.ts │ │ ├── routes │ │ │ ├── [...404].tsx │ │ │ ├── batch-methods.tsx │ │ │ ├── deferred.tsx │ │ │ ├── hydration.tsx │ │ │ ├── index.tsx │ │ │ ├── mixed.tsx │ │ │ ├── prefetch.tsx │ │ │ ├── streamed.tsx │ │ │ └── with-error.tsx │ │ └── utils │ │ │ └── api.ts │ │ └── tsconfig.json ├── svelte │ ├── auto-refetching │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── app.css │ │ │ ├── app.d.ts │ │ │ ├── app.html │ │ │ └── routes │ │ │ │ ├── +layout.svelte │ │ │ │ ├── +page.svelte │ │ │ │ └── api │ │ │ │ └── data │ │ │ │ └── +server.ts │ │ ├── static │ │ │ └── favicon.png │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── basic │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── app.css │ │ │ ├── app.d.ts │ │ │ ├── app.html │ │ │ ├── lib │ │ │ │ ├── Post.svelte │ │ │ │ ├── Posts.svelte │ │ │ │ ├── data.ts │ │ │ │ └── types.ts │ │ │ └── routes │ │ │ │ ├── +layout.svelte │ │ │ │ ├── +page.svelte │ │ │ │ └── [postId] │ │ │ │ ├── +page.svelte │ │ │ │ └── +page.ts │ │ ├── static │ │ │ └── favicon.png │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── load-more-infinite-scroll │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── app.css │ │ │ ├── app.d.ts │ │ │ ├── app.html │ │ │ ├── lib │ │ │ │ └── LoadMore.svelte │ │ │ └── routes │ │ │ │ ├── +layout.svelte │ │ │ │ └── +page.svelte │ │ ├── static │ │ │ └── favicon.png │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── optimistic-updates │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── app.css │ │ │ ├── app.d.ts │ │ │ ├── app.html │ │ │ └── routes │ │ │ │ ├── +layout.svelte │ │ │ │ ├── +page.svelte │ │ │ │ └── api │ │ │ │ └── data │ │ │ │ └── +server.ts │ │ ├── static │ │ │ └── favicon.png │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── playground │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── app.css │ │ │ ├── app.d.ts │ │ │ ├── app.html │ │ │ ├── lib │ │ │ │ └── stores.ts │ │ │ └── routes │ │ │ │ ├── +layout.svelte │ │ │ │ ├── +page.svelte │ │ │ │ ├── AddTodo.svelte │ │ │ │ ├── App.svelte │ │ │ │ ├── EditTodo.svelte │ │ │ │ └── TodosList.svelte │ │ ├── static │ │ │ └── favicon.png │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── simple │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src │ │ │ ├── App.svelte │ │ │ ├── app.css │ │ │ ├── assets │ │ │ │ └── svelte.svg │ │ │ ├── lib │ │ │ │ └── Simple.svelte │ │ │ ├── main.ts │ │ │ └── vite-env.d.ts │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── ssr │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── app.css │ │ │ ├── app.d.ts │ │ │ ├── app.html │ │ │ ├── lib │ │ │ │ ├── Post.svelte │ │ │ │ ├── Posts.svelte │ │ │ │ ├── api.ts │ │ │ │ └── types.ts │ │ │ └── routes │ │ │ │ ├── +layout.svelte │ │ │ │ ├── +layout.ts │ │ │ │ ├── +page.svelte │ │ │ │ ├── +page.ts │ │ │ │ └── [postId] │ │ │ │ ├── +page.svelte │ │ │ │ └── +page.ts │ │ ├── static │ │ │ └── favicon.png │ │ ├── svelte.config.js │ │ ├── tsconfig.json │ │ └── vite.config.ts │ └── star-wars │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── postcss.config.cjs │ │ ├── src │ │ ├── app.css │ │ ├── app.d.ts │ │ ├── app.html │ │ └── routes │ │ │ ├── +layout.svelte │ │ │ ├── +page.svelte │ │ │ ├── characters │ │ │ ├── +page.svelte │ │ │ └── [characterId] │ │ │ │ ├── +page.svelte │ │ │ │ ├── +page.ts │ │ │ │ ├── Film.svelte │ │ │ │ └── Homeworld.svelte │ │ │ └── films │ │ │ ├── +page.svelte │ │ │ └── [filmId] │ │ │ ├── +page.svelte │ │ │ ├── +page.ts │ │ │ └── Character.svelte │ │ ├── static │ │ └── favicon.png │ │ ├── svelte.config.js │ │ ├── tailwind.config.cjs │ │ ├── tsconfig.json │ │ └── vite.config.ts └── vue │ ├── 2.6-basic │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── Post.vue │ │ ├── Posts.vue │ │ ├── main.ts │ │ ├── shims-vue.d.ts │ │ └── types.d.ts │ ├── tsconfig.json │ └── vite.config.ts │ ├── 2.7-basic │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── Post.vue │ │ ├── Posts.vue │ │ ├── main.ts │ │ ├── shims-vue.d.ts │ │ └── types.d.ts │ ├── tsconfig.json │ └── vite.config.ts │ ├── basic │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── Post.vue │ │ ├── Posts.vue │ │ ├── main.ts │ │ ├── shims-vue.d.ts │ │ └── types.d.ts │ ├── tsconfig.json │ └── vite.config.ts │ ├── dependent-queries │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── Post.vue │ │ ├── Posts.vue │ │ ├── main.ts │ │ ├── shims-vue.d.ts │ │ └── types.d.ts │ ├── tsconfig.json │ └── vite.config.ts │ ├── nuxt3 │ ├── .gitignore │ ├── README.md │ ├── app.vue │ ├── nuxt.config.ts │ ├── package.json │ ├── plugins │ │ └── vue-query.ts │ └── tsconfig.json │ ├── persister │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── Post.vue │ │ ├── Posts.vue │ │ ├── main.ts │ │ ├── shims-vue.d.ts │ │ └── types.d.ts │ ├── tsconfig.json │ └── vite.config.ts │ └── simple │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src │ ├── App.vue │ ├── main.ts │ ├── shims-vue.d.ts │ └── types.d.ts │ ├── tsconfig.json │ └── vite.config.ts ├── integrations ├── angular-cli-20 │ ├── .gitignore │ ├── .vscode │ │ ├── extensions.json │ │ ├── launch.json │ │ └── tasks.json │ ├── README.md │ ├── angular.json │ ├── package.json │ ├── public │ │ └── favicon.ico │ ├── src │ │ ├── app │ │ │ ├── app.config.ts │ │ │ └── app.ts │ │ ├── index.html │ │ ├── main.ts │ │ └── styles.css │ ├── tsconfig.app.json │ └── tsconfig.json ├── react-next-14 │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── README.md │ ├── app │ │ ├── client-component.tsx │ │ ├── favicon.ico │ │ ├── layout.tsx │ │ ├── page.tsx │ │ └── providers.tsx │ ├── next.config.js │ ├── package.json │ └── tsconfig.json ├── react-next-15 │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── README.md │ ├── app │ │ ├── _action.ts │ │ ├── client-component.tsx │ │ ├── count │ │ │ └── route.ts │ │ ├── favicon.ico │ │ ├── layout.tsx │ │ ├── make-query-client.ts │ │ ├── page.tsx │ │ └── providers.tsx │ ├── next.config.js │ ├── package.json │ └── tsconfig.json ├── react-vite │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.jsx │ │ └── main.jsx │ ├── tsconfig.json │ └── vite.config.js ├── react-webpack-4 │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── App.js │ │ └── index.js │ └── webpack.config.js ├── react-webpack-5 │ ├── package.json │ ├── public │ │ └── index.html │ ├── src │ │ ├── App.js │ │ └── index.js │ └── webpack.config.js ├── solid-vite │ ├── .gitignore │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.jsx │ │ └── index.jsx │ └── vite.config.js ├── svelte-vite │ ├── .gitignore │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.svelte │ │ ├── Simple.svelte │ │ ├── main.js │ │ └── vite-env.d.ts │ ├── svelte.config.js │ └── vite.config.js └── vue-vite │ ├── .gitignore │ ├── index.html │ ├── package.json │ ├── src │ ├── App.vue │ ├── main.ts │ └── vite-env.d.ts │ ├── tsconfig.json │ └── vite.config.ts ├── knip.json ├── media ├── emblem-light.svg ├── logo-light.png ├── logo.sketch ├── repo-dark.png └── repo-header.png ├── nx.json ├── package.json ├── packages ├── angular-query-devtools-experimental │ ├── .attw.json │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── __tests__ │ │ │ └── inject-devtools-panel.test.ts │ │ ├── index.ts │ │ ├── inject-devtools-panel.ts │ │ └── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── angular-query-experimental │ ├── .attw.json │ ├── README.md │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── __tests__ │ │ │ ├── inject-infinite-query.test-d.ts │ │ │ ├── inject-infinite-query.test.ts │ │ │ ├── inject-is-fetching.test.ts │ │ │ ├── inject-is-mutating.test.ts │ │ │ ├── inject-mutation-state.test-d.ts │ │ │ ├── inject-mutation-state.test.ts │ │ │ ├── inject-mutation.test-d.ts │ │ │ ├── inject-mutation.test.ts │ │ │ ├── inject-query.test-d.ts │ │ │ ├── inject-query.test.ts │ │ │ ├── mutation-options.test-d.ts │ │ │ ├── provide-query-client.test.ts │ │ │ ├── provide-tanstack-query.test.ts │ │ │ ├── providers.test.ts │ │ │ ├── query-options.test-d.ts │ │ │ ├── signal-proxy.test.ts │ │ │ └── test-utils.ts │ │ ├── create-base-query.ts │ │ ├── index.ts │ │ ├── infinite-query-options.ts │ │ ├── inject-infinite-query.ts │ │ ├── inject-is-fetching.ts │ │ ├── inject-is-mutating.ts │ │ ├── inject-is-restoring.ts │ │ ├── inject-mutation-state.ts │ │ ├── inject-mutation.ts │ │ ├── inject-queries.ts │ │ ├── inject-query-client.ts │ │ ├── inject-query.ts │ │ ├── mutation-options.ts │ │ ├── providers.ts │ │ ├── query-options.ts │ │ ├── signal-proxy.ts │ │ ├── test-setup.ts │ │ ├── types.ts │ │ └── util │ │ │ ├── index.ts │ │ │ └── is-dev-mode │ │ │ └── is-dev-mode.ts │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── angular-query-persist-client │ ├── .attw.json │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── __tests__ │ │ │ └── with-persist-query-client.test.ts │ │ ├── index.ts │ │ ├── test-setup.ts │ │ └── with-persist-query-client.ts │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── eslint-plugin-query │ ├── .attw.json │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── __tests__ │ │ │ ├── exhaustive-deps.test.ts │ │ │ ├── infinite-query-property-order.rule.test.ts │ │ │ ├── mutation-property-order.rule.test.ts │ │ │ ├── no-rest-destructuring.test.ts │ │ │ ├── no-unstable-deps.test.ts │ │ │ ├── no-void-query-fn.test.ts │ │ │ ├── sort-data-by-order.utils.test.ts │ │ │ ├── stable-query-client.test.ts │ │ │ ├── test-utils.test.ts │ │ │ ├── test-utils.ts │ │ │ └── ts-fixture │ │ │ │ ├── file.ts │ │ │ │ └── tsconfig.json │ │ ├── index.ts │ │ ├── rules.ts │ │ ├── rules │ │ │ ├── exhaustive-deps │ │ │ │ ├── exhaustive-deps.rule.ts │ │ │ │ └── exhaustive-deps.utils.ts │ │ │ ├── infinite-query-property-order │ │ │ │ ├── constants.ts │ │ │ │ └── infinite-query-property-order.rule.ts │ │ │ ├── mutation-property-order │ │ │ │ ├── constants.ts │ │ │ │ └── mutation-property-order.rule.ts │ │ │ ├── no-rest-destructuring │ │ │ │ ├── no-rest-destructuring.rule.ts │ │ │ │ └── no-rest-destructuring.utils.ts │ │ │ ├── no-unstable-deps │ │ │ │ └── no-unstable-deps.rule.ts │ │ │ ├── no-void-query-fn │ │ │ │ └── no-void-query-fn.rule.ts │ │ │ └── stable-query-client │ │ │ │ └── stable-query-client.rule.ts │ │ ├── types.ts │ │ └── utils │ │ │ ├── ast-utils.ts │ │ │ ├── create-property-order-rule.ts │ │ │ ├── detect-react-query-imports.ts │ │ │ ├── get-docs-url.ts │ │ │ ├── sort-data-by-order.ts │ │ │ └── unique-by.ts │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── query-async-storage-persister │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── __tests__ │ │ │ └── asyncThrottle.test.ts │ │ ├── asyncThrottle.ts │ │ ├── index.ts │ │ └── utils.ts │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── query-broadcast-client-experimental │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── __tests__ │ │ │ └── index.test.ts │ │ └── index.ts │ ├── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── query-codemods │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── utils │ │ │ ├── index.cjs │ │ │ └── transformers │ │ │ │ ├── query-cache-transformer.cjs │ │ │ │ ├── query-client-transformer.cjs │ │ │ │ └── use-query-like-transformer.cjs │ │ ├── v4 │ │ │ ├── __testfixtures__ │ │ │ │ ├── default-import.input.tsx │ │ │ │ ├── default-import.output.tsx │ │ │ │ ├── named-import.input.tsx │ │ │ │ ├── named-import.output.tsx │ │ │ │ ├── namespaced-import.input.tsx │ │ │ │ ├── namespaced-import.output.tsx │ │ │ │ ├── parameter-is-identifier.input.tsx │ │ │ │ ├── parameter-is-identifier.output.tsx │ │ │ │ ├── parameter-is-object-expression.input.tsx │ │ │ │ ├── parameter-is-object-expression.output.tsx │ │ │ │ ├── replace-import-specifier.input.tsx │ │ │ │ ├── replace-import-specifier.output.tsx │ │ │ │ ├── type-arguments.input.tsx │ │ │ │ └── type-arguments.output.tsx │ │ │ ├── __tests__ │ │ │ │ ├── key-transformation.test.cjs │ │ │ │ └── replace-import-specifier.test.cjs │ │ │ ├── key-transformation.cjs │ │ │ ├── replace-import-specifier.cjs │ │ │ └── utils │ │ │ │ └── replacers │ │ │ │ └── key-replacer.cjs │ │ └── v5 │ │ │ ├── is-loading │ │ │ ├── __testfixtures__ │ │ │ │ ├── default-import.input.tsx │ │ │ │ ├── default-import.output.tsx │ │ │ │ ├── named-import.input.tsx │ │ │ │ └── named-import.output.tsx │ │ │ ├── __tests__ │ │ │ │ └── is-loading.test.cjs │ │ │ └── is-loading.cjs │ │ │ ├── keep-previous-data │ │ │ ├── README.md │ │ │ ├── __testfixtures__ │ │ │ │ ├── default.input.tsx │ │ │ │ ├── default.output.tsx │ │ │ │ ├── named.input.tsx │ │ │ │ └── named.output.tsx │ │ │ ├── __tests__ │ │ │ │ └── keep-previous-data.test.cjs │ │ │ ├── keep-previous-data.cjs │ │ │ └── utils │ │ │ │ └── already-has-placeholder-data-property.cjs │ │ │ ├── remove-overloads │ │ │ ├── __testfixtures__ │ │ │ │ ├── bug-reports.input.tsx │ │ │ │ ├── bug-reports.output.tsx │ │ │ │ ├── default-import.input.tsx │ │ │ │ └── default-import.output.tsx │ │ │ ├── __tests__ │ │ │ │ └── remove-overloads.test.cjs │ │ │ ├── remove-overloads.cjs │ │ │ ├── transformers │ │ │ │ ├── filter-aware-usage-transformer.cjs │ │ │ │ └── query-fn-aware-usage-transformer.cjs │ │ │ └── utils │ │ │ │ ├── index.cjs │ │ │ │ └── unknown-usage-error.cjs │ │ │ ├── rename-hydrate │ │ │ ├── __testfixtures__ │ │ │ │ ├── default-import.input.tsx │ │ │ │ ├── default-import.output.tsx │ │ │ │ ├── named-import.input.tsx │ │ │ │ └── named-import.output.tsx │ │ │ ├── __tests__ │ │ │ │ └── rename-hydrate.test.cjs │ │ │ └── rename-hydrate.cjs │ │ │ └── rename-properties │ │ │ ├── __testfixtures__ │ │ │ ├── rename-cache-time.input.tsx │ │ │ ├── rename-cache-time.output.tsx │ │ │ ├── rename-use-error-boundary.input.tsx │ │ │ └── rename-use-error-boundary.output.tsx │ │ │ ├── __tests__ │ │ │ └── rename-properties.test.cjs │ │ │ └── rename-properties.cjs │ ├── tsconfig.json │ └── vite.config.ts ├── query-core │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── __tests__ │ │ │ ├── OmitKeyof.test-d.ts │ │ │ ├── focusManager.test.tsx │ │ │ ├── hydration.test.tsx │ │ │ ├── infiniteQueryBehavior.test.tsx │ │ │ ├── infiniteQueryObserver.test-d.tsx │ │ │ ├── infiniteQueryObserver.test.tsx │ │ │ ├── mutationCache.test.tsx │ │ │ ├── mutationObserver.test.tsx │ │ │ ├── mutations.test.tsx │ │ │ ├── notifyManager.test.tsx │ │ │ ├── onlineManager.test.tsx │ │ │ ├── queriesObserver.test.tsx │ │ │ ├── query.test.tsx │ │ │ ├── queryCache.test.tsx │ │ │ ├── queryClient.test-d.tsx │ │ │ ├── queryClient.test.tsx │ │ │ ├── queryObserver.test-d.tsx │ │ │ ├── queryObserver.test.tsx │ │ │ ├── streamedQuery.test.tsx │ │ │ ├── utils.test-d.tsx │ │ │ ├── utils.test.tsx │ │ │ └── utils.ts │ │ ├── focusManager.ts │ │ ├── hydration.ts │ │ ├── index.ts │ │ ├── infiniteQueryBehavior.ts │ │ ├── infiniteQueryObserver.ts │ │ ├── mutation.ts │ │ ├── mutationCache.ts │ │ ├── mutationObserver.ts │ │ ├── notifyManager.ts │ │ ├── onlineManager.ts │ │ ├── queriesObserver.ts │ │ ├── query.ts │ │ ├── queryCache.ts │ │ ├── queryClient.ts │ │ ├── queryObserver.ts │ │ ├── removable.ts │ │ ├── retryer.ts │ │ ├── streamedQuery.ts │ │ ├── subscribable.ts │ │ ├── thenable.ts │ │ ├── types.ts │ │ └── utils.ts │ ├── tsconfig.json │ ├── tsconfig.legacy.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── query-devtools │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── Devtools.tsx │ │ ├── DevtoolsComponent.tsx │ │ ├── DevtoolsPanelComponent.tsx │ │ ├── Explorer.tsx │ │ ├── TanstackQueryDevtools.tsx │ │ ├── TanstackQueryDevtoolsPanel.tsx │ │ ├── __tests__ │ │ │ ├── devtools.test.tsx │ │ │ └── utils.test.ts │ │ ├── constants.ts │ │ ├── contexts │ │ │ ├── PiPContext.tsx │ │ │ ├── QueryDevtoolsContext.ts │ │ │ ├── ThemeContext.ts │ │ │ └── index.ts │ │ ├── icons │ │ │ └── index.tsx │ │ ├── index.ts │ │ ├── theme.ts │ │ └── utils.tsx │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── query-persist-client-core │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── __tests__ │ │ │ ├── createPersister.test.ts │ │ │ ├── persist.test.ts │ │ │ └── utils.ts │ │ ├── createPersister.ts │ │ ├── index.ts │ │ ├── persist.ts │ │ └── retryStrategies.ts │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── query-sync-storage-persister │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── __tests__ │ │ │ └── storageIsFull.test.ts │ │ ├── index.ts │ │ └── utils.ts │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── query-test-utils │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── __test__ │ │ │ ├── queryKey.test.ts │ │ │ └── sleep.test.ts │ │ ├── index.ts │ │ ├── mockVisibilityState.ts │ │ ├── queryKey.ts │ │ └── sleep.ts │ ├── tsconfig.json │ └── vite.config.ts ├── react-query-devtools │ ├── .attw.json │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── ReactQueryDevtools.tsx │ │ ├── ReactQueryDevtoolsPanel.tsx │ │ ├── __tests__ │ │ │ ├── devtools.test.tsx │ │ │ └── not-development.test.tsx │ │ ├── index.ts │ │ └── production.ts │ ├── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.legacy.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── react-query-next-experimental │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── HydrationStreamProvider.tsx │ │ ├── ReactQueryStreamedHydration.tsx │ │ ├── htmlescape.ts │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.legacy.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── react-query-persist-client │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── PersistQueryClientProvider.tsx │ │ ├── __tests__ │ │ │ └── PersistQueryClientProvider.test.tsx │ │ └── index.ts │ ├── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.legacy.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── react-query │ ├── README.md │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ │ ├── HydrationBoundary.tsx │ │ ├── IsRestoringProvider.ts │ │ ├── QueryClientProvider.tsx │ │ ├── QueryErrorResetBoundary.tsx │ │ ├── __tests__ │ │ │ ├── HydrationBoundary.test.tsx │ │ │ ├── QueryClientProvider.test.tsx │ │ │ ├── QueryResetErrorBoundary.test.tsx │ │ │ ├── fine-grained-persister.test.tsx │ │ │ ├── infiniteQueryOptions.test-d.tsx │ │ │ ├── infiniteQueryOptions.test.tsx │ │ │ ├── queryOptions.test-d.tsx │ │ │ ├── queryOptions.test.tsx │ │ │ ├── ssr-hydration.test.tsx │ │ │ ├── ssr.test.tsx │ │ │ ├── suspense.test.tsx │ │ │ ├── useInfiniteQuery.test-d.tsx │ │ │ ├── useInfiniteQuery.test.tsx │ │ │ ├── useIsFetching.test.tsx │ │ │ ├── useMutation.test.tsx │ │ │ ├── useMutationState.test-d.tsx │ │ │ ├── useMutationState.test.tsx │ │ │ ├── usePrefetchInfiniteQuery.test-d.tsx │ │ │ ├── usePrefetchInfiniteQuery.test.tsx │ │ │ ├── usePrefetchQuery.test-d.tsx │ │ │ ├── usePrefetchQuery.test.tsx │ │ │ ├── useQueries.test-d.tsx │ │ │ ├── useQueries.test.tsx │ │ │ ├── useQuery.promise.test.tsx │ │ │ ├── useQuery.test-d.tsx │ │ │ ├── useQuery.test.tsx │ │ │ ├── useSuspenseInfiniteQuery.test-d.tsx │ │ │ ├── useSuspenseInfiniteQuery.test.tsx │ │ │ ├── useSuspenseQueries.test-d.tsx │ │ │ ├── useSuspenseQueries.test.tsx │ │ │ ├── useSuspenseQuery.test-d.tsx │ │ │ ├── useSuspenseQuery.test.tsx │ │ │ └── utils.tsx │ │ ├── errorBoundaryUtils.ts │ │ ├── index.ts │ │ ├── infiniteQueryOptions.ts │ │ ├── queryOptions.ts │ │ ├── suspense.ts │ │ ├── types.ts │ │ ├── useBaseQuery.ts │ │ ├── useInfiniteQuery.ts │ │ ├── useIsFetching.ts │ │ ├── useMutation.ts │ │ ├── useMutationState.ts │ │ ├── usePrefetchInfiniteQuery.tsx │ │ ├── usePrefetchQuery.tsx │ │ ├── useQueries.ts │ │ ├── useQuery.ts │ │ ├── useSuspenseInfiniteQuery.ts │ │ ├── useSuspenseQueries.ts │ │ └── useSuspenseQuery.ts │ ├── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.legacy.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── solid-query-devtools │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── devtools.tsx │ │ └── index.tsx │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── solid-query-persist-client │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── PersistQueryClientProvider.tsx │ │ ├── __tests__ │ │ │ └── PersistQueryClientProvider.test.tsx │ │ └── index.ts │ ├── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── solid-query │ ├── README.md │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── QueryClient.ts │ │ ├── QueryClientProvider.tsx │ │ ├── __tests__ │ │ │ ├── QueryClientProvider.test.tsx │ │ │ ├── createQueries.test-d.tsx │ │ │ ├── queryOptions.test-d.tsx │ │ │ ├── suspense.test.tsx │ │ │ ├── transition.test.tsx │ │ │ ├── useInfiniteQuery.test.tsx │ │ │ ├── useIsFetching.test.tsx │ │ │ ├── useIsMutating.test.tsx │ │ │ ├── useMutation.test.tsx │ │ │ ├── useMutationState.test-d.tsx │ │ │ ├── useMutationState.test.tsx │ │ │ ├── useQueries.test.tsx │ │ │ ├── useQuery.test-d.tsx │ │ │ ├── useQuery.test.tsx │ │ │ ├── useQueryOptions.test-d.tsx │ │ │ └── utils.tsx │ │ ├── index.ts │ │ ├── infiniteQueryOptions.ts │ │ ├── isRestoring.ts │ │ ├── queryOptions.ts │ │ ├── types.ts │ │ ├── useBaseQuery.ts │ │ ├── useInfiniteQuery.ts │ │ ├── useIsFetching.ts │ │ ├── useIsMutating.ts │ │ ├── useMutation.ts │ │ ├── useMutationState.ts │ │ ├── useQueries.ts │ │ ├── useQuery.ts │ │ └── utils.ts │ ├── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.legacy.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── svelte-query-devtools │ ├── .attw.json │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── Devtools.svelte │ │ └── index.ts │ ├── svelte.config.js │ ├── tsconfig.json │ └── vite.config.ts ├── svelte-query-persist-client │ ├── .attw.json │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── PersistQueryClientProvider.svelte │ │ └── index.ts │ ├── svelte.config.js │ ├── tests │ │ ├── AwaitOnSuccess │ │ │ ├── AwaitOnSuccess.svelte │ │ │ └── Provider.svelte │ │ ├── FreshData │ │ │ ├── FreshData.svelte │ │ │ └── Provider.svelte │ │ ├── InitialData │ │ │ ├── InitialData.svelte │ │ │ └── Provider.svelte │ │ ├── OnSuccess │ │ │ ├── OnSuccess.svelte │ │ │ └── Provider.svelte │ │ ├── PersistQueryClientProvider.test.ts │ │ ├── RemoveCache │ │ │ ├── Provider.svelte │ │ │ └── RemoveCache.svelte │ │ ├── RestoreCache │ │ │ ├── Provider.svelte │ │ │ └── RestoreCache.svelte │ │ ├── UseQueries │ │ │ ├── Provider.svelte │ │ │ └── UseQueries.svelte │ │ ├── test-setup.ts │ │ └── utils.ts │ ├── tsconfig.json │ └── vite.config.ts ├── svelte-query │ ├── .attw.json │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── HydrationBoundary.svelte │ │ ├── QueryClientProvider.svelte │ │ ├── context.ts │ │ ├── createBaseQuery.ts │ │ ├── createInfiniteQuery.ts │ │ ├── createMutation.ts │ │ ├── createQueries.ts │ │ ├── createQuery.ts │ │ ├── index.ts │ │ ├── infiniteQueryOptions.ts │ │ ├── queryOptions.ts │ │ ├── types.ts │ │ ├── useHydrate.ts │ │ ├── useIsFetching.ts │ │ ├── useIsMutating.ts │ │ ├── useIsRestoring.ts │ │ ├── useMutationState.ts │ │ ├── useQueryClient.ts │ │ └── utils.ts │ ├── svelte.config.js │ ├── tests │ │ ├── QueryClientProvider │ │ │ ├── ChildComponent.svelte │ │ │ ├── ParentComponent.svelte │ │ │ └── QueryClientProvider.test.ts │ │ ├── context │ │ │ ├── BaseExample.svelte │ │ │ └── context.test.ts │ │ ├── createInfiniteQuery │ │ │ ├── BaseExample.svelte │ │ │ ├── SelectExample.svelte │ │ │ └── createInfiniteQuery.test.ts │ │ ├── createMutation │ │ │ ├── FailureExample.svelte │ │ │ ├── OnSuccessExample.svelte │ │ │ ├── ResetExample.svelte │ │ │ └── createMutation.test.ts │ │ ├── createQueries │ │ │ ├── BaseExample.svelte │ │ │ ├── CombineExample.svelte │ │ │ ├── createQueries.test-d.ts │ │ │ └── createQueries.test.ts │ │ ├── createQuery │ │ │ ├── BaseExample.svelte │ │ │ ├── DisabledExample.svelte │ │ │ ├── PlaceholderData.svelte │ │ │ ├── RefetchExample.svelte │ │ │ ├── createQuery.test-d.ts │ │ │ └── createQuery.test.ts │ │ ├── infiniteQueryOptions │ │ │ └── infiniteQueryOptions.test-d.ts │ │ ├── queryOptions │ │ │ └── queryOptions.test-d.ts │ │ ├── test-setup.ts │ │ ├── useIsFetching │ │ │ ├── BaseExample.svelte │ │ │ └── useIsFetching.test.ts │ │ ├── useIsMutating │ │ │ ├── BaseExample.svelte │ │ │ └── useIsMutating.test.ts │ │ └── useMutationState │ │ │ ├── BaseExample.svelte │ │ │ └── useMutationState.test.ts │ ├── tsconfig.json │ └── vite.config.ts ├── vue-query-devtools │ ├── .attw.json │ ├── eslint.config.js │ ├── package.json │ ├── root.eslint.config.js │ ├── src │ │ ├── devtools.vue │ │ ├── index.ts │ │ ├── production.ts │ │ └── types.ts │ ├── tsconfig.json │ └── vite.config.ts └── vue-query │ ├── README.md │ ├── eslint.config.js │ ├── media │ ├── vue-query.png │ └── vue-query.svg │ ├── package.json │ ├── root.eslint.config.js │ ├── root.tsup.config.js │ ├── src │ ├── __mocks__ │ │ ├── useBaseQuery.ts │ │ └── useQueryClient.ts │ ├── __tests__ │ │ ├── infiniteQueryOptions.test-d.ts │ │ ├── mutationCache.test.ts │ │ ├── queryCache.test.ts │ │ ├── queryClient.test-d.ts │ │ ├── queryClient.test.ts │ │ ├── queryOptions.test-d.ts │ │ ├── useInfiniteQuery.test-d.tsx │ │ ├── useInfiniteQuery.test.ts │ │ ├── useIsFetching.test.ts │ │ ├── useIsMutating.test.ts │ │ ├── useMutation.test-d.tsx │ │ ├── useMutation.test.ts │ │ ├── useQueries.test-d.ts │ │ ├── useQueries.test.ts │ │ ├── useQuery.test-d.ts │ │ ├── useQuery.test.ts │ │ ├── useQueryClient.test.ts │ │ ├── utils.test.ts │ │ └── vueQueryPlugin.test.ts │ ├── devtools │ │ ├── devtools.ts │ │ └── utils.ts │ ├── index.ts │ ├── infiniteQueryOptions.ts │ ├── mutationCache.ts │ ├── queryCache.ts │ ├── queryClient.ts │ ├── queryOptions.ts │ ├── types.ts │ ├── useBaseQuery.ts │ ├── useInfiniteQuery.ts │ ├── useIsFetching.ts │ ├── useMutation.ts │ ├── useMutationState.ts │ ├── useQueries.ts │ ├── useQuery.ts │ ├── useQueryClient.ts │ ├── utils.ts │ └── vueQueryPlugin.ts │ ├── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.legacy.json │ ├── tsconfig.prod.json │ ├── tsup.config.js │ └── vite.config.ts ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── prettier.config.js ├── scripts ├── generateDocs.js ├── getTsupConfig.js ├── getViteAliases.js ├── publish.js ├── tsconfig.json └── verify-links.ts └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto eol=lf 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [tannerlinsley, tkdodo] 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Feature Requests & Questions 4 | url: https://github.com/TanStack/query/discussions 5 | about: Please ask and answer questions here. 6 | - name: Community Chat 7 | url: https://discord.gg/mQd7egN 8 | about: A dedicated discord server hosted by Tanner Linsley 9 | -------------------------------------------------------------------------------- /.github/workflows/labeler.yml: -------------------------------------------------------------------------------- 1 | name: Labeler 2 | 3 | on: 4 | - pull_request_target 5 | 6 | jobs: 7 | triage: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/labeler@v4.3.0 11 | with: 12 | repo-token: ${{ secrets.GITHUB_TOKEN }} 13 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | link-workspace-packages=true 2 | prefer-workspace-packages=true 3 | provenance=true 4 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 22.12.0 2 | -------------------------------------------------------------------------------- /.nx/workflows/dynamic-changesets.yaml: -------------------------------------------------------------------------------- 1 | distribute-on: 2 | small-changeset: 3 linux-medium-js 3 | medium-changeset: 6 linux-medium-js 4 | large-changeset: 10 linux-medium-js 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/.next 2 | **/.nx/cache 3 | **/.svelte-kit 4 | **/build 5 | **/coverage 6 | **/dist 7 | **/query-codemods/**/__testfixtures__ 8 | pnpm-lock.yaml 9 | packages/**/tsup.config.bundled*.mjs 10 | **/tsconfig.vitest-temp.json 11 | -------------------------------------------------------------------------------- /FUNDING.json: -------------------------------------------------------------------------------- 1 | { 2 | "drips": { 3 | "ethereum": { 4 | "ownedBy": "0xD5371B61b35E13F2ae354BE95081aD63FB383452" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /docs/framework/angular/guides/does-this-replace-client-state.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: does-this-replace-client-state 3 | title: Does TanStack Query replace global state managers? 4 | ref: docs/framework/react/guides/does-this-replace-client-state.md 5 | replace: 6 | { 7 | 'useQuery': 'injectQuery', 8 | 'useMutation': 'injectMutation', 9 | 'hook': 'function', 10 | } 11 | --- 12 | -------------------------------------------------------------------------------- /docs/framework/angular/guides/filters.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: filters 3 | title: Filters 4 | ref: docs/framework/react/guides/filters.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/angular/guides/network-mode.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: network-mode 3 | title: Network Mode 4 | ref: docs/framework/react/guides/network-mode.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/angular/guides/scroll-restoration.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: scroll-restoration 3 | title: Scroll Restoration 4 | ref: docs/framework/react/guides/scroll-restoration.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/angular/reference/type-aliases/queryfeaturekind.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: QueryFeatureKind 3 | title: QueryFeatureKind 4 | --- 5 | 6 | # Type Alias: QueryFeatureKind 7 | 8 | ```ts 9 | type QueryFeatureKind = (typeof queryFeatures)[number] 10 | ``` 11 | 12 | ## Defined in 13 | 14 | [providers.ts:369](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L369) 15 | -------------------------------------------------------------------------------- /docs/framework/angular/reference/variables/queryfeatures.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: queryFeatures 3 | title: queryFeatures 4 | --- 5 | 6 | # Variable: queryFeatures 7 | 8 | ```ts 9 | const queryFeatures: readonly ['DeveloperTools', 'PersistQueryClient'] 10 | ``` 11 | 12 | ## Defined in 13 | 14 | [providers.ts:367](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L367) 15 | -------------------------------------------------------------------------------- /docs/framework/solid/community/community-projects.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: community-projects 3 | title: Community Projects 4 | ref: docs/framework/react/community/community-projects.md 5 | replace: { 'React Query': 'TanStack Query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/solid/community/tkdodos-blog.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: tkdodos-blog 3 | title: TkDodo's Blog 4 | ref: docs/framework/react/community/tkdodos-blog.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/advanced-ssr.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: advanced-ssr 3 | title: Advanced Server Rendering 4 | --- 5 | 6 | Will come soon 7 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/background-fetching-indicators.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: background-fetching-indicators 3 | title: Background Fetching Indicators 4 | ref: docs/framework/react/guides/background-fetching-indicators.md 5 | replace: { 'useMutation[(]': 'useMutation(() => ' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/caching.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: caching 3 | title: Caching Examples 4 | ref: docs/framework/react/guides/caching.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/does-this-replace-client-state.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: does-this-replace-client-state 3 | title: Does TanStack Query replace global state managers? 4 | ref: docs/framework/react/guides/does-this-replace-client-state.md 5 | replace: { 'hook': 'function' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/filters.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: filters 3 | title: Filters 4 | ref: docs/framework/react/guides/filters.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/important-defaults.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: important-defaults 3 | title: Important Defaults 4 | ref: docs/framework/react/guides/important-defaults.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/network-mode.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: network-mode 3 | title: Network Mode 4 | ref: docs/framework/react/guides/network-mode.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/queries.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: queries 3 | title: Queries 4 | ref: docs/framework/react/guides/queries.md 5 | replace: 6 | { 7 | '@tanstack/react-query': '@tanstack/solid-query', 8 | 'useMutationState[(]': 'useMutationState(() => ', 9 | 'useMutation[(]': 'useMutation(() => ', 10 | 'useQuery[(]': 'useQuery(() => ', 11 | 'useQueries[(]': 'useQueries(() => ', 12 | } 13 | --- 14 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/scroll-restoration.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: scroll-restoration 3 | title: Scroll Restoration 4 | ref: docs/framework/react/guides/scroll-restoration.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/ssr.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: ssr 3 | title: SSR 4 | --- 5 | 6 | Will come soon 7 | -------------------------------------------------------------------------------- /docs/framework/solid/guides/testing.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: testing 3 | title: Testing 4 | --- 5 | -------------------------------------------------------------------------------- /docs/framework/solid/plugins/broadcastQueryClient.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: broadcastQueryClient 3 | title: broadcastQueryClient (Experimental) 4 | ref: docs/framework/react/plugins/broadcastQueryClient.md 5 | replace: { 'react-query': 'vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/solid/plugins/createPersister.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: createPersister 3 | title: experimental_createPersister 4 | ref: docs/framework/react/plugins/createPersister.md 5 | replace: { 'react-query': 'solid-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/solid/reference/hydration.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: hydration 3 | title: hydration 4 | ref: docs/framework/react/reference/hydration.md 5 | replace: { '@tanstack/react-query': '@tanstack/solid-query' } 6 | --- 7 | 8 | [//]: # 'HydrationBoundary' 9 | [//]: # 'HydrationBoundary' 10 | -------------------------------------------------------------------------------- /docs/framework/solid/reference/infiniteQueryOptions.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: infiniteQueryOptions 3 | title: infiniteQueryOptions 4 | ref: docs/framework/react/reference/infiniteQueryOptions.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/solid/reference/queryOptions.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: queryOptions 3 | title: queryOptions 4 | ref: docs/framework/react/reference/queryOptions.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/solid/reference/useInfiniteQuery.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useInfiniteQuery 3 | title: useInfiniteQuery 4 | ref: docs/framework/react/reference/useInfiniteQuery.md 5 | replace: 6 | { 7 | '@tanstack/react-query': '@tanstack/solid-query', 8 | 'useInfiniteQuery[(]': 'useInfiniteQuery(() => ', 9 | 'useMutation[(]': 'useMutation(() => ', 10 | } 11 | --- 12 | -------------------------------------------------------------------------------- /docs/framework/solid/reference/useIsFetching.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useIsFetching 3 | title: useIsFetching 4 | ref: docs/framework/react/reference/useIsFetching.md 5 | replace: { '@tanstack/react-query': '@tanstack/solid-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/solid/reference/useIsMutating.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useIsMutating 3 | title: useIsMutating 4 | ref: docs/framework/react/reference/useIsMutating.md 5 | replace: { '@tanstack/react-query': '@tanstack/solid-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/solid/reference/useMutation.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useMutation 3 | title: useMutation 4 | ref: docs/framework/react/reference/useMutation.md 5 | replace: 6 | { 7 | '@tanstack/react-query': '@tanstack/solid-query', 8 | 'useMutationState[(]': 'useMutationState(() => ', 9 | 'useMutation[(]': 'useMutation(() => ', 10 | } 11 | --- 12 | -------------------------------------------------------------------------------- /docs/framework/solid/reference/useMutationState.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useMutationState 3 | title: useMutationState 4 | ref: docs/framework/react/reference/useMutationState.md 5 | replace: 6 | { 7 | '@tanstack/react-query': '@tanstack/solid-query', 8 | 'useMutationState[(]': 'useMutationState(() => ', 9 | 'useMutation[(]': 'useMutation(() => ', 10 | } 11 | --- 12 | -------------------------------------------------------------------------------- /docs/framework/solid/reference/useQueries.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useQueries 3 | title: useQueries 4 | ref: docs/framework/react/reference/useQueries.md 5 | replace: 6 | { 7 | '@tanstack/react-query': '@tanstack/solid-query', 8 | 'useQueries[(]': 'useQueries(() => ', 9 | } 10 | --- 11 | -------------------------------------------------------------------------------- /docs/framework/svelte/reference/type-aliases/hydrationboundary.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: HydrationBoundary 3 | title: HydrationBoundary 4 | --- 5 | 6 | # Type Alias: HydrationBoundary 7 | 8 | ```ts 9 | type HydrationBoundary = SvelteComponent 10 | ``` 11 | 12 | ## Defined in 13 | 14 | node_modules/.pnpm/svelte@5.26.1/node_modules/svelte/types/index.d.ts:2675 15 | -------------------------------------------------------------------------------- /docs/framework/svelte/reference/variables/hydrationboundary.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: HydrationBoundary 3 | title: HydrationBoundary 4 | --- 5 | 6 | # Variable: HydrationBoundary 7 | 8 | ```ts 9 | const HydrationBoundary: LegacyComponentType 10 | ``` 11 | 12 | ## Defined in 13 | 14 | node_modules/.pnpm/svelte@5.26.1/node_modules/svelte/types/index.d.ts:2675 15 | -------------------------------------------------------------------------------- /docs/framework/vue/community/tkdodos-blog.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: tkdodos-blog 3 | title: TkDodo's Blog 4 | ref: docs/framework/react/community/tkdodos-blog.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/vue/graphql.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: graphql 3 | title: GraphQL 4 | ref: docs/framework/react/graphql.md 5 | replace: { 'React': 'Vue', 'react-query': 'vue-query' } 6 | --- 7 | 8 | [//]: # 'Codegen' 9 | [//]: # 'Codegen' 10 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/caching.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: caching 3 | title: Caching Examples 4 | ref: docs/framework/react/guides/caching.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/does-this-replace-client-state.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: does-this-replace-client-state 3 | title: Does Vue Query replace Vuex, Pinia or other global state managers? 4 | ref: docs/framework/react/guides/does-this-replace-client-state.md 5 | replace: { 'Redux, MobX': 'Vuex, Pinia' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/filters.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: filters 3 | title: Filters 4 | ref: docs/framework/react/guides/filters.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/important-defaults.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: important-defaults 3 | title: Important Defaults 4 | ref: docs/framework/react/guides/important-defaults.md 5 | --- 6 | 7 | [//]: # 'Materials' 8 | [//]: # 'Materials' 9 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/initial-query-data.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: initial-query-data 3 | title: Initial Query Data 4 | ref: docs/framework/react/guides/initial-query-data.md 5 | --- 6 | 7 | [//]: # 'Materials' 8 | [//]: # 'Materials' 9 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/network-mode.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: network-mode 3 | title: Network Mode 4 | ref: docs/framework/react/guides/network-mode.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/optimistic-updates.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: optimistic-updates 3 | title: Optimistic Updates 4 | ref: docs/framework/react/guides/optimistic-updates.md 5 | replace: { 'React': 'Vue' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/query-invalidation.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: query-invalidation 3 | title: Query Invalidation 4 | ref: docs/framework/react/guides/query-invalidation.md 5 | replace: { 'react-query': 'vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/query-keys.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: query-keys 3 | title: Query Keys 4 | ref: docs/framework/react/guides/query-keys.md 5 | --- 6 | 7 | [//]: # 'Example5' 8 | 9 | ```js 10 | function useTodos(todoId) { 11 | const queryKey = ['todos', todoId] 12 | return useQuery({ 13 | queryKey, 14 | queryFn: () => fetchTodoById(todoId.value), 15 | }) 16 | } 17 | ``` 18 | 19 | [//]: # 'Example5' 20 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/query-options.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: query-options 3 | title: Query Options 4 | ref: docs/framework/react/guides/query-options.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/scroll-restoration.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: scroll-restoration 3 | title: Scroll Restoration 4 | ref: docs/framework/react/guides/scroll-restoration.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/testing.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: testing 3 | title: Testing 4 | --- 5 | -------------------------------------------------------------------------------- /docs/framework/vue/guides/updates-from-mutation-responses.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: updates-from-mutation-responses 3 | title: Updates from Mutation Responses 4 | ref: docs/framework/react/guides/updates-from-mutation-responses.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/vue/plugins/broadcastQueryClient.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: broadcastQueryClient 3 | title: broadcastQueryClient (Experimental) 4 | ref: docs/framework/react/plugins/broadcastQueryClient.md 5 | replace: { 'react-query': 'vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/hydration.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: hydration 3 | title: hydration 4 | ref: docs/framework/react/reference/hydration.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | 8 | [//]: # 'HydrationBoundary' 9 | [//]: # 'HydrationBoundary' 10 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/infiniteQueryOptions.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: infiniteQueryOptions 3 | title: infiniteQueryOptions 4 | ref: docs/framework/react/reference/infiniteQueryOptions.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/queryOptions.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: queryOptions 3 | title: queryOptions 4 | ref: docs/framework/react/reference/queryOptions.md 5 | --- 6 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/useInfiniteQuery.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useInfiniteQuery 3 | title: useInfiniteQuery 4 | ref: docs/framework/react/reference/useInfiniteQuery.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/useIsFetching.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useIsFetching 3 | title: useIsFetching 4 | ref: docs/framework/react/reference/useIsFetching.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/useIsMutating.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useIsMutating 3 | title: useIsMutating 4 | ref: docs/framework/react/reference/useIsMutating.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/useMutation.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useMutation 3 | title: useMutation 4 | ref: docs/framework/react/reference/useMutation.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/useMutationState.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useMutationState 3 | title: useMutationState 4 | ref: docs/framework/react/reference/useMutationState.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/useQueries.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useQueries 3 | title: useQueries 4 | ref: docs/framework/react/reference/useQueries.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/useQuery.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useQuery 3 | title: useQuery 4 | ref: docs/framework/react/reference/useQuery.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /docs/framework/vue/reference/useQueryClient.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: useQueryClient 3 | title: useQueryClient 4 | ref: docs/framework/react/reference/useQueryClient.md 5 | replace: { '@tanstack/react-query': '@tanstack/vue-query' } 6 | --- 7 | -------------------------------------------------------------------------------- /examples/angular/auto-refetching/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/auto-refetching/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/angular/auto-refetching/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular auto-refetching example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/auto-refetching/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/auto-refetching/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/auto-refetching/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TanStack Query Angular auto-refetching example 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/angular/auto-refetching/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/basic-persister/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/basic-persister/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/angular/basic-persister/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular basic persister example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/basic-persister/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |

2 | Try to mock offline behavior with the button in the devtools. You can navigate 3 | around as long as there is already data in the cache. You'll get a refetch as 4 | soon as you go "online" again. 5 |

6 | @if (postId() > -1) { 7 | 8 | } @else { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/basic-persister/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/basic-persister/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/basic-persister/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { BasicExampleComponent } from './app/app.component' 4 | 5 | bootstrapApplication(BasicExampleComponent, appConfig).catch((err) => 6 | console.error(err), 7 | ) 8 | -------------------------------------------------------------------------------- /examples/angular/basic-persister/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/basic/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/basic/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/angular/basic/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular basic example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/basic/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/basic/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/basic/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TanStack Query Angular basic example 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/angular/basic/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { BasicExampleComponent } from './app/app.component' 4 | 5 | bootstrapApplication(BasicExampleComponent, appConfig).catch((err) => 6 | console.error(err), 7 | ) 8 | -------------------------------------------------------------------------------- /examples/angular/basic/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/devtools-panel/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/devtools-panel/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular devtools panel example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/devtools-panel/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/devtools-panel/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/devtools-panel/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TanStack Query devtools panel example 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/angular/devtools-panel/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/devtools-panel/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/infinite-query-with-max-pages/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/infinite-query-with-max-pages/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/angular/infinite-query-with-max-pages/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular infinite query example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/infinite-query-with-max-pages/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core' 2 | import { ExampleComponent } from './components/example.component' 3 | 4 | @Component({ 5 | changeDetection: ChangeDetectionStrategy.OnPush, 6 | selector: 'app-root', 7 | template: ``, 8 | imports: [ExampleComponent], 9 | }) 10 | export class AppComponent {} 11 | -------------------------------------------------------------------------------- /examples/angular/infinite-query-with-max-pages/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/infinite-query-with-max-pages/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/infinite-query-with-max-pages/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/infinite-query-with-max-pages/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/optimistic-updates/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/optimistic-updates/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/angular/optimistic-updates/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular optimistic-updates example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/optimistic-updates/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/optimistic-updates/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/optimistic-updates/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/optimistic-updates/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/pagination/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/pagination/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular pagination example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/pagination/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core' 2 | import { ExampleComponent } from './components/example.component' 3 | 4 | @Component({ 5 | changeDetection: ChangeDetectionStrategy.OnPush, 6 | selector: 'app-root', 7 | template: ``, 8 | imports: [ExampleComponent], 9 | }) 10 | export class AppComponent {} 11 | -------------------------------------------------------------------------------- /examples/angular/pagination/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/pagination/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/pagination/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TanStack Query Angular pagination example 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/angular/pagination/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/pagination/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "outDir": "./out-tsc/app", 6 | "types": [] 7 | }, 8 | "files": ["src/main.ts"], 9 | "include": ["src/**/*.d.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /examples/angular/query-options-from-a-service/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/query-options-from-a-service/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/angular/query-options-from-a-service/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular query options from a service example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/query-options-from-a-service/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core' 2 | import { RouterOutlet } from '@angular/router' 3 | 4 | @Component({ 5 | selector: 'app-root', 6 | imports: [RouterOutlet], 7 | templateUrl: './app.component.html', 8 | }) 9 | export class AppComponent {} 10 | -------------------------------------------------------------------------------- /examples/angular/query-options-from-a-service/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/query-options-from-a-service/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/query-options-from-a-service/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/query-options-from-a-service/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/router/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/router/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/angular/router/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular router example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/router/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core' 2 | import { RouterOutlet } from '@angular/router' 3 | 4 | @Component({ 5 | selector: 'app-root', 6 | changeDetection: ChangeDetectionStrategy.OnPush, 7 | imports: [RouterOutlet], 8 | templateUrl: './app.component.html', 9 | }) 10 | export class AppComponent {} 11 | -------------------------------------------------------------------------------- /examples/angular/router/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/router/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/router/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TanStack Query Angular router example 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/angular/router/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/router/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/rxjs/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/rxjs/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/angular/rxjs/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular RxJS Example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/rxjs/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core' 2 | import { ExampleComponent } from './components/example.component' 3 | 4 | @Component({ 5 | changeDetection: ChangeDetectionStrategy.OnPush, 6 | selector: 'app-root', 7 | template: ``, 8 | imports: [ExampleComponent], 9 | }) 10 | export class AppComponent {} 11 | -------------------------------------------------------------------------------- /examples/angular/rxjs/src/app/components/example.component.html: -------------------------------------------------------------------------------- 1 |

Search for a programming language

2 | 3 |
4 | 5 | 6 | @if (query.isSuccess() && query.data().suggestions.length) { 7 |
    8 | @for (suggestion of query.data().suggestions; track suggestion) { 9 |
  • {{ suggestion }}
  • 10 | } 11 |
12 | } 13 |
14 | -------------------------------------------------------------------------------- /examples/angular/rxjs/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/rxjs/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/rxjs/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TanStack Query Angular RxJS example 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/angular/rxjs/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/rxjs/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/angular/simple/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Node.js", 3 | "image": "mcr.microsoft.com/devcontainers/javascript-node:22" 4 | } 5 | -------------------------------------------------------------------------------- /examples/angular/simple/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/angular/simple/README.md: -------------------------------------------------------------------------------- 1 | # TanStack Query Angular simple example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run start` or `yarn start` or `pnpm start` or `bun start` 7 | -------------------------------------------------------------------------------- /examples/angular/simple/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core' 2 | import { SimpleExampleComponent } from './components/simple-example.component' 3 | 4 | @Component({ 5 | selector: 'app-root', 6 | changeDetection: ChangeDetectionStrategy.OnPush, 7 | imports: [SimpleExampleComponent], 8 | template: ``, 9 | }) 10 | export class AppComponent {} 11 | -------------------------------------------------------------------------------- /examples/angular/simple/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/angular/simple/src/favicon.ico -------------------------------------------------------------------------------- /examples/angular/simple/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TanStack Query Angular simple example 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/angular/simple/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { AppComponent } from './app/app.component' 4 | 5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /examples/angular/simple/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /examples/angular/simple/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./out-tsc/app", 5 | "types": [] 6 | }, 7 | "files": ["src/main.ts"], 8 | "include": ["src/**/*.d.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/react/algolia/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/algolia/src/index.tsx: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom/client' 2 | 3 | import App from './App' 4 | 5 | const rootElement = document.getElementById('root') as HTMLElement 6 | ReactDOM.createRoot(rootElement).render() 7 | -------------------------------------------------------------------------------- /examples/react/algolia/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/auto-refetching/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/auto-refetching/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/react/auto-refetching/next.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('next').NextConfig} */ 4 | const nextConfig = { 5 | eslint: { 6 | ignoreDuringBuilds: true, 7 | }, 8 | typescript: { 9 | ignoreBuildErrors: true, 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /examples/react/basic-graphql-request/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/basic/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/basic/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/chat/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/chat/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/chat/src/style.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss'; 2 | -------------------------------------------------------------------------------- /examples/react/chat/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import tailwindcss from '@tailwindcss/vite' 4 | 5 | export default defineConfig({ 6 | plugins: [tailwindcss(), react()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/react/default-query-function/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/default-query-function/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/default-query-function/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/devtools-panel/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/devtools-panel/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/devtools-panel/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/eslint-legacy/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "@typescript-eslint/parser", 3 | "plugins": ["@typescript-eslint"], 4 | "extends": ["plugin:@tanstack/query/recommended"] 5 | } 6 | -------------------------------------------------------------------------------- /examples/react/eslint-legacy/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/eslint-legacy/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/infinite-query-with-max-pages/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/infinite-query-with-max-pages/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/react/infinite-query-with-max-pages/next.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('next').NextConfig} */ 4 | const nextConfig = { 5 | eslint: { 6 | ignoreDuringBuilds: true, 7 | }, 8 | typescript: { 9 | ignoreBuildErrors: true, 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /examples/react/load-more-infinite-scroll/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/load-more-infinite-scroll/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/react/load-more-infinite-scroll/next.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('next').NextConfig} */ 4 | const nextConfig = { 5 | eslint: { 6 | ignoreDuringBuilds: true, 7 | }, 8 | typescript: { 9 | ignoreBuildErrors: true, 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /examples/react/load-more-infinite-scroll/src/pages/about.tsx: -------------------------------------------------------------------------------- 1 | export default () => { 2 | return ( 3 | { 6 | window.history.back() 7 | e.preventDefault() 8 | }} 9 | > 10 | Back 11 | 12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /examples/react/nextjs-app-prefetching/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ['plugin:react/jsx-runtime', 'plugin:react-hooks/recommended'], 4 | settings: { 5 | react: { 6 | version: 'detect', 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /examples/react/nextjs-app-prefetching/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/react/nextjs-app-prefetching/app/favicon.ico -------------------------------------------------------------------------------- /examples/react/nextjs-app-prefetching/app/pokemon.ts: -------------------------------------------------------------------------------- 1 | import { queryOptions } from '@tanstack/react-query' 2 | 3 | export const pokemonOptions = queryOptions({ 4 | queryKey: ['pokemon'], 5 | queryFn: async () => { 6 | const response = await fetch('https://pokeapi.co/api/v2/pokemon/25') 7 | 8 | return response.json() 9 | }, 10 | }) 11 | -------------------------------------------------------------------------------- /examples/react/nextjs-app-prefetching/next.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('next').NextConfig} */ 4 | const nextConfig = { 5 | eslint: { 6 | ignoreDuringBuilds: true, 7 | }, 8 | typescript: { 9 | ignoreBuildErrors: true, 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /examples/react/nextjs-suspense-streaming/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/react/nextjs-suspense-streaming/src/app/api/wait/route.ts: -------------------------------------------------------------------------------- 1 | import { NextResponse } from 'next/server' 2 | 3 | export async function GET(request: Request) { 4 | const { searchParams } = new URL(request.url) 5 | const wait = Number(searchParams.get('wait')) 6 | 7 | await new Promise((resolve) => setTimeout(resolve, wait)) 8 | 9 | return NextResponse.json(`waited ${wait}ms`) 10 | } 11 | -------------------------------------------------------------------------------- /examples/react/nextjs/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | -------------------------------------------------------------------------------- /examples/react/nextjs/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/react/nextjs/next.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('next').NextConfig} */ 4 | const nextConfig = { 5 | eslint: { 6 | ignoreDuringBuilds: true, 7 | }, 8 | typescript: { 9 | ignoreBuildErrors: true, 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /examples/react/nextjs/src/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Header' 2 | export * from './InfoBox' 3 | export * from './Layout' 4 | export * from './PostList' 5 | -------------------------------------------------------------------------------- /examples/react/nextjs/src/pages/client-only.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Header, InfoBox, Layout, PostList } from '../components' 3 | 4 | const ClientOnly = () => { 5 | return ( 6 | 7 |
8 | ℹ️ This data is loaded on client and not prefetched 9 | 10 | 11 | ) 12 | } 13 | 14 | export default ClientOnly 15 | -------------------------------------------------------------------------------- /examples/react/offline/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/offline/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/offline/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import { worker } from './api' 5 | 6 | worker.start() 7 | 8 | const rootElement = document.getElementById('root') as HTMLElement 9 | ReactDOM.createRoot(rootElement).render( 10 |
11 | 12 |
, 13 | ) 14 | -------------------------------------------------------------------------------- /examples/react/offline/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/optimistic-updates-cache/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/optimistic-updates-cache/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/react/optimistic-updates-cache/next.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('next').NextConfig} */ 4 | const nextConfig = { 5 | eslint: { 6 | ignoreDuringBuilds: true, 7 | }, 8 | typescript: { 9 | ignoreBuildErrors: true, 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /examples/react/optimistic-updates-ui/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/optimistic-updates-ui/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/react/optimistic-updates-ui/next.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('next').NextConfig} */ 4 | const nextConfig = { 5 | eslint: { 6 | ignoreDuringBuilds: true, 7 | }, 8 | typescript: { 9 | ignoreBuildErrors: true, 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /examples/react/pagination/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/pagination/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/react/pagination/next.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('next').NextConfig} */ 4 | const nextConfig = { 5 | eslint: { 6 | ignoreDuringBuilds: true, 7 | }, 8 | typescript: { 9 | ignoreBuildErrors: true, 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /examples/react/playground/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/playground/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/playground/src/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 1rem; 4 | font-family: 5 | -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 6 | 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 7 | -webkit-font-smoothing: antialiased; 8 | -moz-osx-font-smoothing: grayscale; 9 | color: white; 10 | background: #0b1521; 11 | } 12 | -------------------------------------------------------------------------------- /examples/react/playground/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/prefetching/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/prefetching/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /examples/react/prefetching/next.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('next').NextConfig} */ 4 | const nextConfig = { 5 | eslint: { 6 | ignoreDuringBuilds: true, 7 | }, 8 | typescript: { 9 | ignoreBuildErrors: true, 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /examples/react/react-native/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends": "@callstack", 4 | "rules": { 5 | "react-native/no-raw-text": 0, 6 | "promise/prefer-await-to-then": 0 7 | }, 8 | "settings": { 9 | "import/resolver": { 10 | "alias": { 11 | "map": [["@app", "./src"]], 12 | "extensions": [".ts", ".tsx", ".js", ".jsx", ".json"] 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/react/react-native/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - Install expo CLI if needed `npm install --global expo-cli` 6 | - `pnpm install` 7 | - `pnpm start` 8 | -------------------------------------------------------------------------------- /examples/react/react-native/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/react/react-native/assets/adaptive-icon.png -------------------------------------------------------------------------------- /examples/react/react-native/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/react/react-native/assets/favicon.png -------------------------------------------------------------------------------- /examples/react/react-native/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/react/react-native/assets/icon.png -------------------------------------------------------------------------------- /examples/react/react-native/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/react/react-native/assets/splash.png -------------------------------------------------------------------------------- /examples/react/react-native/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api.cache(true) 3 | return { 4 | presets: ['babel-preset-expo'], 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/react/react-native/src/components/Divider.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { StyleSheet } from 'react-native' 3 | import { Divider as PaperDivider } from 'react-native-paper' 4 | 5 | export function Divider() { 6 | return 7 | } 8 | 9 | const styles = StyleSheet.create({ 10 | divider: { 11 | marginLeft: 10, 12 | }, 13 | }) 14 | -------------------------------------------------------------------------------- /examples/react/react-native/src/navigation/types.ts: -------------------------------------------------------------------------------- 1 | import type { Movie } from '../lib/api' 2 | 3 | export type MoviesStackNavigator = { 4 | MoviesList: undefined 5 | MovieDetails: { movie: Movie } 6 | } 7 | -------------------------------------------------------------------------------- /examples/react/react-native/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "expo/tsconfig.base", 3 | "compilerOptions": { 4 | "strict": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/react/react-router/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/react-router/README.md: -------------------------------------------------------------------------------- 1 | # React Router Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/rick-morty/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/rick-morty/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/rick-morty/src/fetch.jsx: -------------------------------------------------------------------------------- 1 | export default async function (...args) { 2 | const res = await fetch(...args) 3 | return await res.json() 4 | } 5 | -------------------------------------------------------------------------------- /examples/react/rick-morty/src/index.tsx: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom/client' 2 | import App from './App' 3 | 4 | const rootElement = document.getElementById('root') as HTMLElement 5 | ReactDOM.createRoot(rootElement).render() 6 | -------------------------------------------------------------------------------- /examples/react/rick-morty/src/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: Roboto; 5 | } 6 | -------------------------------------------------------------------------------- /examples/react/rick-morty/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/shadow-dom/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/react/shadow-dom/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `pnpm install` 6 | - `pnpm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/shadow-dom/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/react/shadow-dom/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/react/shadow-dom/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/react/simple/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/simple/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/simple/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/star-wars/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/star-wars/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run dev` 7 | -------------------------------------------------------------------------------- /examples/react/star-wars/src/fetch.jsx: -------------------------------------------------------------------------------- 1 | export default async function (...args) { 2 | const res = await fetch(...args) 3 | return await res.json() 4 | } 5 | -------------------------------------------------------------------------------- /examples/react/star-wars/src/index.tsx: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom/client' 2 | import App from './App' 3 | 4 | const rootElement = document.getElementById('root') as HTMLElement 5 | ReactDOM.createRoot(rootElement).render() 6 | -------------------------------------------------------------------------------- /examples/react/star-wars/src/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: Roboto; 5 | } 6 | -------------------------------------------------------------------------------- /examples/react/star-wars/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/react/suspense/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/jsx-runtime", "plugin:react-hooks/recommended"] 3 | } 4 | -------------------------------------------------------------------------------- /examples/react/suspense/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `pnpm install` 6 | - `pnpm dev` 7 | -------------------------------------------------------------------------------- /examples/react/suspense/src/components/Spinner.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | export default function Spinner() { 4 | return ( 5 | 12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /examples/react/suspense/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/solid/astro/.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | .vercel/ 4 | # generated types 5 | .astro/ 6 | 7 | # dependencies 8 | node_modules/ 9 | 10 | # logs 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | 17 | # environment variables 18 | .env 19 | .env.production 20 | 21 | # macOS-specific files 22 | .DS_Store 23 | 24 | # jetbrains setting folder 25 | .idea/ 26 | -------------------------------------------------------------------------------- /examples/solid/astro/astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'astro/config' 2 | import solidJs from '@astrojs/solid-js' 3 | import tailwind from '@astrojs/tailwind' 4 | import node from '@astrojs/node' 5 | // https://astro.build/config 6 | export default defineConfig({ 7 | output: 'server', 8 | integrations: [solidJs(), tailwind()], 9 | adapter: node({ 10 | mode: 'standalone', 11 | }), 12 | }) 13 | -------------------------------------------------------------------------------- /examples/solid/astro/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /examples/solid/astro/src/pages/index.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import MainLayout from '../layouts/MainLayout.astro'; 3 | 4 | const id = Astro.url.searchParams.get('id') || ''; 5 | --- 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/solid/astro/tailwind.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | } 9 | -------------------------------------------------------------------------------- /examples/solid/astro/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict", 3 | "compilerOptions": { 4 | "jsx": "preserve", 5 | "jsxImportSource": "solid-js" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /examples/solid/basic-graphql-request/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/solid/basic-graphql-request/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .yalc 4 | yalc.lock -------------------------------------------------------------------------------- /examples/solid/basic-graphql-request/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run start` 7 | -------------------------------------------------------------------------------- /examples/solid/basic-graphql-request/src/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/solid/basic-graphql-request/src/assets/favicon.ico -------------------------------------------------------------------------------- /examples/solid/basic-graphql-request/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solid from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solid()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/solid/basic/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/solid/basic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .yalc 4 | yalc.lock -------------------------------------------------------------------------------- /examples/solid/basic/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run start` 7 | -------------------------------------------------------------------------------- /examples/solid/basic/src/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/solid/basic/src/assets/favicon.ico -------------------------------------------------------------------------------- /examples/solid/basic/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solid from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solid()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/solid/default-query-function/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = {} 5 | 6 | module.exports = config 7 | -------------------------------------------------------------------------------- /examples/solid/default-query-function/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .yalc 4 | yalc.lock -------------------------------------------------------------------------------- /examples/solid/default-query-function/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run start` 7 | -------------------------------------------------------------------------------- /examples/solid/default-query-function/src/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/solid/default-query-function/src/assets/favicon.ico -------------------------------------------------------------------------------- /examples/solid/default-query-function/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solid from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solid()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/solid/simple/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('eslint').Linter.Config} */ 4 | const config = { 5 | extends: ['plugin:@tanstack/eslint-plugin-query/recommended'], 6 | } 7 | 8 | module.exports = config 9 | -------------------------------------------------------------------------------- /examples/solid/simple/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .yalc 4 | yalc.lock -------------------------------------------------------------------------------- /examples/solid/simple/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | To run this example: 4 | 5 | - `npm install` 6 | - `npm run start` 7 | -------------------------------------------------------------------------------- /examples/solid/simple/src/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/solid/simple/src/assets/favicon.ico -------------------------------------------------------------------------------- /examples/solid/simple/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solid from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solid()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/solid/solid-start-streaming/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | dist 3 | .solid 4 | .output 5 | .vercel 6 | .netlify 7 | netlify 8 | .vinxi 9 | 10 | # Environment 11 | .env 12 | .env*.local 13 | 14 | # dependencies 15 | /node_modules 16 | 17 | # IDEs and editors 18 | /.idea 19 | .project 20 | .classpath 21 | *.launch 22 | .settings/ 23 | 24 | # Temp 25 | gitignore 26 | 27 | # System Files 28 | .DS_Store 29 | Thumbs.db 30 | -------------------------------------------------------------------------------- /examples/solid/solid-start-streaming/app.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@solidjs/start/config' 2 | 3 | export default defineConfig({}) 4 | -------------------------------------------------------------------------------- /examples/solid/solid-start-streaming/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/solid/solid-start-streaming/public/favicon.ico -------------------------------------------------------------------------------- /examples/solid/solid-start-streaming/public/imgs/deferred.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/solid/solid-start-streaming/public/imgs/deferred.png -------------------------------------------------------------------------------- /examples/solid/solid-start-streaming/public/imgs/streaming.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/solid/solid-start-streaming/public/imgs/streaming.png -------------------------------------------------------------------------------- /examples/solid/solid-start-streaming/src/entry-client.tsx: -------------------------------------------------------------------------------- 1 | // @refresh reload 2 | import { mount, StartClient } from '@solidjs/start/client' 3 | 4 | mount(() => , document.getElementById('app')!) 5 | -------------------------------------------------------------------------------- /examples/solid/solid-start-streaming/src/global.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /examples/svelte/auto-refetching/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | !lib/ 10 | -------------------------------------------------------------------------------- /examples/svelte/auto-refetching/src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface Platform {} 9 | } 10 | } 11 | 12 | export {} 13 | -------------------------------------------------------------------------------- /examples/svelte/auto-refetching/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/svelte/auto-refetching/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/svelte/auto-refetching/static/favicon.png -------------------------------------------------------------------------------- /examples/svelte/auto-refetching/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite' 2 | import { defineConfig } from 'vite' 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/svelte/basic/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | !lib/ 10 | -------------------------------------------------------------------------------- /examples/svelte/basic/src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface Platform {} 9 | } 10 | } 11 | 12 | export {} 13 | -------------------------------------------------------------------------------- /examples/svelte/basic/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/svelte/basic/src/lib/types.ts: -------------------------------------------------------------------------------- 1 | export type Post = { 2 | id: number 3 | title: string 4 | body: string 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/basic/src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 |

Basic Query

6 | 7 | -------------------------------------------------------------------------------- /examples/svelte/basic/src/routes/[postId]/+page.svelte: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/svelte/basic/src/routes/[postId]/+page.ts: -------------------------------------------------------------------------------- 1 | import type { PageLoad } from './$types' 2 | 3 | export const load: PageLoad = async ({ params }) => { 4 | const postId = parseInt(params.postId) 5 | return { postId } 6 | } 7 | -------------------------------------------------------------------------------- /examples/svelte/basic/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/svelte/basic/static/favicon.png -------------------------------------------------------------------------------- /examples/svelte/basic/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite' 2 | import { defineConfig } from 'vite' 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/svelte/load-more-infinite-scroll/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | vite.config.js.timestamp-* 10 | vite.config.ts.timestamp-* 11 | -------------------------------------------------------------------------------- /examples/svelte/load-more-infinite-scroll/src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface Platform {} 9 | } 10 | } 11 | 12 | export {} 13 | -------------------------------------------------------------------------------- /examples/svelte/load-more-infinite-scroll/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/svelte/load-more-infinite-scroll/src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 |

Infinite Load More

6 | 7 | -------------------------------------------------------------------------------- /examples/svelte/load-more-infinite-scroll/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/svelte/load-more-infinite-scroll/static/favicon.png -------------------------------------------------------------------------------- /examples/svelte/load-more-infinite-scroll/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite' 2 | import { defineConfig } from 'vite' 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/svelte/optimistic-updates/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | !lib/ 10 | -------------------------------------------------------------------------------- /examples/svelte/optimistic-updates/src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface Platform {} 9 | } 10 | } 11 | 12 | export {} 13 | -------------------------------------------------------------------------------- /examples/svelte/optimistic-updates/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/svelte/optimistic-updates/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/svelte/optimistic-updates/static/favicon.png -------------------------------------------------------------------------------- /examples/svelte/optimistic-updates/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite' 2 | import { defineConfig } from 'vite' 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/svelte/playground/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | !lib/ 10 | -------------------------------------------------------------------------------- /examples/svelte/playground/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | This example is a rewrite of the React Query playground example. 4 | 5 | To run this example: 6 | 7 | - `npm install` 8 | - `npm run dev` 9 | -------------------------------------------------------------------------------- /examples/svelte/playground/src/app.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 1rem; 4 | font-family: 5 | -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 6 | 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 7 | -webkit-font-smoothing: antialiased; 8 | -moz-osx-font-smoothing: grayscale; 9 | color: white; 10 | background: #0b1521; 11 | } 12 | -------------------------------------------------------------------------------- /examples/svelte/playground/src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface Platform {} 9 | } 10 | } 11 | 12 | export {} 13 | -------------------------------------------------------------------------------- /examples/svelte/playground/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/svelte/playground/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/svelte/playground/static/favicon.png -------------------------------------------------------------------------------- /examples/svelte/playground/svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-auto' 2 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 3 | 4 | /** @type {import('@sveltejs/kit').Config} */ 5 | const config = { 6 | preprocess: vitePreprocess(), 7 | 8 | kit: { 9 | adapter: adapter(), 10 | }, 11 | } 12 | 13 | export default config 14 | -------------------------------------------------------------------------------- /examples/svelte/playground/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.svelte-kit/tsconfig.json", 3 | "compilerOptions": { 4 | "allowJs": true, 5 | "checkJs": true, 6 | "esModuleInterop": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "resolveJsonModule": true, 9 | "skipLibCheck": true, 10 | "sourceMap": true, 11 | "strict": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/svelte/playground/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite' 2 | import { defineConfig } from 'vite' 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/svelte/simple/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | !lib/ 15 | 16 | # Editor directories and files 17 | .vscode 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /examples/svelte/simple/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vite + Svelte + TS 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/svelte/simple/src/main.ts: -------------------------------------------------------------------------------- 1 | import './app.css' 2 | import App from './App.svelte' 3 | 4 | const app = new App({ 5 | target: document.querySelector('#app')!, 6 | }) 7 | 8 | export default app 9 | -------------------------------------------------------------------------------- /examples/svelte/simple/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /examples/svelte/simple/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | // Consult https://github.com/sveltejs/svelte-preprocess 5 | // for more information about preprocessors 6 | preprocess: vitePreprocess(), 7 | } 8 | -------------------------------------------------------------------------------- /examples/svelte/simple/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import { svelte } from '@sveltejs/vite-plugin-svelte' 3 | 4 | export default defineConfig({ 5 | plugins: [svelte()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/svelte/ssr/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | !lib/ 10 | -------------------------------------------------------------------------------- /examples/svelte/ssr/src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface Platform {} 9 | } 10 | } 11 | 12 | export {} 13 | -------------------------------------------------------------------------------- /examples/svelte/ssr/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/svelte/ssr/src/lib/types.ts: -------------------------------------------------------------------------------- 1 | export type Post = { 2 | id: number 3 | title: string 4 | body: string 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/ssr/src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 |

Basic Query with SSR

6 | 7 | -------------------------------------------------------------------------------- /examples/svelte/ssr/src/routes/+page.ts: -------------------------------------------------------------------------------- 1 | import { api } from '$lib/api' 2 | import type { PageLoad } from './$types' 3 | 4 | export const load: PageLoad = async ({ parent, fetch }) => { 5 | const { queryClient } = await parent() 6 | 7 | await queryClient.prefetchQuery({ 8 | queryKey: ['posts', 10], 9 | queryFn: () => api(fetch).getPosts(10), 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /examples/svelte/ssr/src/routes/[postId]/+page.svelte: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/svelte/ssr/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/svelte/ssr/static/favicon.png -------------------------------------------------------------------------------- /examples/svelte/ssr/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite' 2 | import { defineConfig } from 'vite' 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | !lib/ 10 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | This example is a rewrite of the React Query star-wars example. 4 | 5 | To run this example: 6 | 7 | - `npm install` 8 | - `npm run dev` 9 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [require('tailwindcss'), require('autoprefixer')], 3 | } 4 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/src/app.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | body { 7 | @apply font-sans; 8 | } 9 | 10 | h1, 11 | h2, 12 | h3, 13 | h4, 14 | h5, 15 | h6 { 16 | @apply font-mono; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface Platform {} 9 | } 10 | } 11 | 12 | export {} 13 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/src/routes/characters/[characterId]/+page.ts: -------------------------------------------------------------------------------- 1 | import type { PageLoad } from './$types' 2 | 3 | export const load: PageLoad = ({ params }) => { 4 | return { params } 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/src/routes/films/[filmId]/+page.ts: -------------------------------------------------------------------------------- 1 | import type { PageLoad } from './$types' 2 | 3 | export const load: PageLoad = ({ params }) => { 4 | return { params } 5 | } 6 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/examples/svelte/star-wars/static/favicon.png -------------------------------------------------------------------------------- /examples/svelte/star-wars/svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-auto' 2 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 3 | 4 | /** @type {import('@sveltejs/kit').Config} */ 5 | const config = { 6 | preprocess: vitePreprocess(), 7 | 8 | kit: { 9 | adapter: adapter(), 10 | }, 11 | } 12 | 13 | export default config 14 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.svelte-kit/tsconfig.json", 3 | "compilerOptions": { 4 | "allowJs": true, 5 | "checkJs": true, 6 | "esModuleInterop": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "resolveJsonModule": true, 9 | "skipLibCheck": true, 10 | "sourceMap": true, 11 | "strict": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/svelte/star-wars/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite' 2 | import { defineConfig } from 'vite' 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/vue/2.6-basic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | package-lock.json 8 | yarn.lock 9 | pnpm-lock.yaml 10 | -------------------------------------------------------------------------------- /examples/vue/2.6-basic/README.md: -------------------------------------------------------------------------------- 1 | # 2.6 Basic example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run dev` or `yarn dev` or `pnpm dev` or `bun dev` 7 | -------------------------------------------------------------------------------- /examples/vue/2.6-basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vue Query Example 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/vue/2.6-basic/src/main.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueCompositionApi, { createApp, h } from '@vue/composition-api' 3 | import { VueQueryPlugin } from '@tanstack/vue-query' 4 | 5 | import App from './App.vue' 6 | 7 | Vue.use(VueCompositionApi) 8 | Vue.use(VueQueryPlugin) 9 | 10 | createApp({ 11 | render() { 12 | return h(App) 13 | }, 14 | }).mount('#app') 15 | -------------------------------------------------------------------------------- /examples/vue/2.6-basic/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import Vue from 'vue' 3 | export default Vue 4 | } 5 | -------------------------------------------------------------------------------- /examples/vue/2.6-basic/src/types.d.ts: -------------------------------------------------------------------------------- 1 | export interface Post { 2 | userId: number 3 | id: number 4 | title: string 5 | body: string 6 | } 7 | -------------------------------------------------------------------------------- /examples/vue/2.6-basic/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import { createVuePlugin } from 'vite-plugin-vue2' 3 | 4 | export default defineConfig({ 5 | plugins: [createVuePlugin()], 6 | }) 7 | -------------------------------------------------------------------------------- /examples/vue/2.7-basic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | package-lock.json 8 | yarn.lock 9 | pnpm-lock.yaml 10 | -------------------------------------------------------------------------------- /examples/vue/2.7-basic/README.md: -------------------------------------------------------------------------------- 1 | # 2.6 Basic example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` 6 | - `npm run dev` or `yarn dev` or `pnpm dev` 7 | -------------------------------------------------------------------------------- /examples/vue/2.7-basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vue Query Example 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/vue/2.7-basic/src/main.ts: -------------------------------------------------------------------------------- 1 | import Vue, { h } from 'vue' 2 | import { VueQueryPlugin } from '@tanstack/vue-query' 3 | 4 | import App from './App.vue' 5 | 6 | Vue.use(VueQueryPlugin) 7 | 8 | var app = new Vue({ 9 | el: '#app', 10 | 11 | render: () => { 12 | return h(App) 13 | }, 14 | }) 15 | -------------------------------------------------------------------------------- /examples/vue/2.7-basic/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import Vue from 'vue' 3 | export default Vue 4 | } 5 | -------------------------------------------------------------------------------- /examples/vue/2.7-basic/src/types.d.ts: -------------------------------------------------------------------------------- 1 | export interface Post { 2 | userId: number 3 | id: number 4 | title: string 5 | body: string 6 | } 7 | -------------------------------------------------------------------------------- /examples/vue/2.7-basic/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "Bundler", 6 | "strict": true, 7 | "jsx": "preserve", 8 | "sourceMap": true, 9 | "resolveJsonModule": true, 10 | "esModuleInterop": true, 11 | "lib": ["esnext", "dom"], 12 | "types": ["vite/client"] 13 | }, 14 | "include": ["src/*.ts", "src/*.d.ts", "src/*.vue"] 15 | } 16 | -------------------------------------------------------------------------------- /examples/vue/2.7-basic/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import { createVuePlugin } from 'vite-plugin-vue2' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [createVuePlugin()], 7 | }) 8 | -------------------------------------------------------------------------------- /examples/vue/basic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | package-lock.json 8 | yarn.lock 9 | pnpm-lock.yaml 10 | -------------------------------------------------------------------------------- /examples/vue/basic/README.md: -------------------------------------------------------------------------------- 1 | # Basic example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run dev` or `yarn dev` or `pnpm dev` or `bun dev` 7 | -------------------------------------------------------------------------------- /examples/vue/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vue Query Example 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/vue/basic/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import { VueQueryPlugin } from '@tanstack/vue-query' 3 | 4 | import App from './App.vue' 5 | 6 | createApp(App).use(VueQueryPlugin).mount('#app') 7 | -------------------------------------------------------------------------------- /examples/vue/basic/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import { DefineComponent } from 'vue' 3 | const component: DefineComponent<{}, {}, any> 4 | export default component 5 | } 6 | -------------------------------------------------------------------------------- /examples/vue/basic/src/types.d.ts: -------------------------------------------------------------------------------- 1 | export interface Post { 2 | userId: number 3 | id: number 4 | title: string 5 | body: string 6 | } 7 | -------------------------------------------------------------------------------- /examples/vue/basic/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | export default defineConfig({ 5 | plugins: [vue()], 6 | optimizeDeps: { 7 | exclude: ['@tanstack/vue-query', 'vue-demi'], 8 | }, 9 | }) 10 | -------------------------------------------------------------------------------- /examples/vue/dependent-queries/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | package-lock.json 7 | -------------------------------------------------------------------------------- /examples/vue/dependent-queries/README.md: -------------------------------------------------------------------------------- 1 | # Dependent queries example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/dependent-queries/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vue Query Example 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/vue/dependent-queries/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import { VueQueryPlugin } from '@tanstack/vue-query' 3 | 4 | import App from './App.vue' 5 | 6 | createApp(App).use(VueQueryPlugin).mount('#app') 7 | -------------------------------------------------------------------------------- /examples/vue/dependent-queries/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import { DefineComponent } from 'vue' 3 | const component: DefineComponent<{}, {}, any> 4 | export default component 5 | } 6 | -------------------------------------------------------------------------------- /examples/vue/dependent-queries/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | export default defineConfig({ 5 | plugins: [vue()], 6 | optimizeDeps: { 7 | exclude: ['@tanstack/vue-query', 'vue-demi'], 8 | }, 9 | }) 10 | -------------------------------------------------------------------------------- /examples/vue/nuxt3/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | .nuxt 4 | nuxt.d.ts 5 | .output 6 | .env 7 | 8 | package-lock.json 9 | yarn.lock 10 | pnpm-lock.yaml 11 | -------------------------------------------------------------------------------- /examples/vue/nuxt3/app.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 17 | -------------------------------------------------------------------------------- /examples/vue/nuxt3/nuxt.config.ts: -------------------------------------------------------------------------------- 1 | import { defineNuxtConfig } from 'nuxt/config' 2 | 3 | // https://v3.nuxtjs.org/docs/directory-structure/nuxt.config 4 | export default defineNuxtConfig({}) 5 | -------------------------------------------------------------------------------- /examples/vue/nuxt3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tanstack/query-example-vue-nuxt3", 3 | "private": true, 4 | "scripts": { 5 | "dev": "nuxi dev", 6 | "_build": "nuxi build", 7 | "_start": "node .output/server/index.mjs" 8 | }, 9 | "dependencies": { 10 | "@tanstack/vue-query": "^5.79.0" 11 | }, 12 | "devDependencies": { 13 | "nuxt": "^3.12.4" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/vue/nuxt3/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // https://v3.nuxtjs.org/concepts/typescript 3 | "extends": "./.nuxt/tsconfig.json" 4 | } 5 | -------------------------------------------------------------------------------- /examples/vue/persister/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | package-lock.json 7 | -------------------------------------------------------------------------------- /examples/vue/persister/README.md: -------------------------------------------------------------------------------- 1 | # Basic example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` 6 | - `npm run dev` or `yarn dev` 7 | -------------------------------------------------------------------------------- /examples/vue/persister/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vue Query Example 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/vue/persister/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import { DefineComponent } from 'vue' 3 | const component: DefineComponent<{}, {}, any> 4 | export default component 5 | } 6 | -------------------------------------------------------------------------------- /examples/vue/persister/src/types.d.ts: -------------------------------------------------------------------------------- 1 | export interface Post { 2 | userId: number 3 | id: number 4 | title: string 5 | body: string 6 | } 7 | -------------------------------------------------------------------------------- /examples/vue/persister/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | export default defineConfig({ 5 | plugins: [vue()], 6 | optimizeDeps: { 7 | exclude: ['@tanstack/vue-query', 'vue-demi'], 8 | }, 9 | }) 10 | -------------------------------------------------------------------------------- /examples/vue/simple/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | 7 | package-lock.json 8 | yarn.lock 9 | pnpm-lock.yaml 10 | -------------------------------------------------------------------------------- /examples/vue/simple/README.md: -------------------------------------------------------------------------------- 1 | # Basic example 2 | 3 | To run this example: 4 | 5 | - `npm install` or `yarn` or `pnpm i` or `bun i` 6 | - `npm run dev` or `yarn dev` or `pnpm dev` or `bun dev` 7 | -------------------------------------------------------------------------------- /examples/vue/simple/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | TanStack Query Vue Simple Example App 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/vue/simple/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import { VueQueryPlugin } from '@tanstack/vue-query' 3 | 4 | import App from './App.vue' 5 | 6 | createApp(App).use(VueQueryPlugin).mount('#app') 7 | -------------------------------------------------------------------------------- /examples/vue/simple/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import { DefineComponent } from 'vue' 3 | const component: DefineComponent<{}, {}, any> 4 | export default component 5 | } 6 | -------------------------------------------------------------------------------- /examples/vue/simple/src/types.d.ts: -------------------------------------------------------------------------------- 1 | export interface Post { 2 | userId: number 3 | id: number 4 | title: string 5 | body: string 6 | } 7 | -------------------------------------------------------------------------------- /examples/vue/simple/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "Bundler", 6 | "strict": true, 7 | "jsx": "preserve", 8 | "sourceMap": true, 9 | "resolveJsonModule": true, 10 | "esModuleInterop": true, 11 | "lib": ["esnext", "dom"], 12 | "types": ["vite/client"] 13 | }, 14 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.vue"] 15 | } 16 | -------------------------------------------------------------------------------- /examples/vue/simple/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | export default defineConfig({ 5 | plugins: [vue()], 6 | optimizeDeps: { 7 | exclude: ['@tanstack/vue-query', 'vue-demi'], 8 | }, 9 | }) 10 | -------------------------------------------------------------------------------- /integrations/angular-cli-20/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 3 | "recommendations": ["angular.ng-template"] 4 | } 5 | -------------------------------------------------------------------------------- /integrations/angular-cli-20/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 3 | "version": "0.2.0", 4 | "configurations": [ 5 | { 6 | "name": "ng serve", 7 | "type": "chrome", 8 | "request": "launch", 9 | "preLaunchTask": "npm: start", 10 | "url": "http://localhost:4200/" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /integrations/angular-cli-20/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/integrations/angular-cli-20/public/favicon.ico -------------------------------------------------------------------------------- /integrations/angular-cli-20/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AngularCli20 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /integrations/angular-cli-20/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser' 2 | import { appConfig } from './app/app.config' 3 | import { App } from './app/app' 4 | 5 | bootstrapApplication(App, appConfig).catch((err) => console.error(err)) 6 | -------------------------------------------------------------------------------- /integrations/angular-cli-20/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /integrations/react-next-14/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ['plugin:react/jsx-runtime', 'plugin:react-hooks/recommended'], 4 | settings: { 5 | react: { 6 | version: 'detect', 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /integrations/react-next-14/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/integrations/react-next-14/app/favicon.ico -------------------------------------------------------------------------------- /integrations/react-next-14/app/page.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { queryOptions } from '@tanstack/react-query' 3 | import { ClientComponent } from './client-component' 4 | 5 | const options = queryOptions({ 6 | queryKey: ['foo'], 7 | }) 8 | 9 | export default function Home() { 10 | return ( 11 |
12 | 13 | Key: {JSON.stringify(options.queryKey)} 14 |
15 | ) 16 | } 17 | -------------------------------------------------------------------------------- /integrations/react-next-14/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | eslint: { 4 | ignoreDuringBuilds: true, 5 | }, 6 | typescript: { 7 | ignoreBuildErrors: true, 8 | }, 9 | } 10 | 11 | module.exports = nextConfig 12 | -------------------------------------------------------------------------------- /integrations/react-next-15/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ['plugin:react/jsx-runtime', 'plugin:react-hooks/recommended'], 4 | settings: { 5 | react: { 6 | version: 'detect', 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /integrations/react-next-15/app/_action.ts: -------------------------------------------------------------------------------- 1 | 'use server' 2 | 3 | import { revalidatePath } from 'next/cache' 4 | import { countRef } from './make-query-client' 5 | 6 | export async function queryExampleAction() { 7 | await Promise.resolve() 8 | countRef.current++ 9 | revalidatePath('/', 'page') 10 | return undefined 11 | } 12 | -------------------------------------------------------------------------------- /integrations/react-next-15/app/count/route.ts: -------------------------------------------------------------------------------- 1 | import { countRef } from '../make-query-client' 2 | 3 | export const GET = () => { 4 | return Response.json({ count: countRef.current }) 5 | } 6 | -------------------------------------------------------------------------------- /integrations/react-next-15/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/integrations/react-next-15/app/favicon.ico -------------------------------------------------------------------------------- /integrations/react-next-15/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | eslint: { 4 | ignoreDuringBuilds: true, 5 | }, 6 | typescript: { 7 | ignoreBuildErrors: true, 8 | }, 9 | } 10 | 11 | module.exports = nextConfig 12 | -------------------------------------------------------------------------------- /integrations/react-vite/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ['plugin:react/jsx-runtime', 'plugin:react-hooks/recommended'], 4 | settings: { 5 | react: { 6 | version: 'detect', 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /integrations/react-vite/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /integrations/react-vite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vite + React 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /integrations/react-vite/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-vite", 3 | "private": true, 4 | "type": "module", 5 | "scripts": { 6 | "build": "vite build" 7 | }, 8 | "dependencies": { 9 | "@tanstack/react-query": "workspace:*", 10 | "@tanstack/react-query-devtools": "workspace:*", 11 | "@vitejs/plugin-react": "^4.3.4", 12 | "react": "^19.0.0", 13 | "react-dom": "^19.0.0", 14 | "vite": "^6.2.4" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /integrations/react-vite/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) 7 | -------------------------------------------------------------------------------- /integrations/react-webpack-4/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | react-webpack-4 6 | 7 | 8 | 9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /integrations/react-webpack-5/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | react-webpack-5 6 | 7 | 8 | 9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /integrations/solid-vite/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /integrations/solid-vite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vite + Solid 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /integrations/solid-vite/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "solid-vite", 3 | "private": true, 4 | "type": "module", 5 | "scripts": { 6 | "build": "vite build" 7 | }, 8 | "dependencies": { 9 | "@tanstack/solid-query": "workspace:*", 10 | "@tanstack/solid-query-devtools": "workspace:*", 11 | "solid-js": "^1.9.5", 12 | "vite": "^6.2.4", 13 | "vite-plugin-solid": "^2.11.6" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /integrations/solid-vite/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import solid from 'vite-plugin-solid' 3 | 4 | export default defineConfig({ 5 | plugins: [solid()], 6 | }) 7 | -------------------------------------------------------------------------------- /integrations/svelte-vite/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /integrations/svelte-vite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vite + Svelte 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /integrations/svelte-vite/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-vite", 3 | "private": true, 4 | "type": "module", 5 | "scripts": { 6 | "build": "vite build" 7 | }, 8 | "devDependencies": { 9 | "@sveltejs/vite-plugin-svelte": "^5.0.3", 10 | "@tanstack/svelte-query": "workspace:*", 11 | "@tanstack/svelte-query-devtools": "workspace:*", 12 | "svelte": "^5.26.1", 13 | "vite": "^6.2.4" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /integrations/svelte-vite/src/App.svelte: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /integrations/svelte-vite/src/main.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte' 2 | 3 | const app = new App({ 4 | target: document.getElementById('app'), 5 | }) 6 | 7 | export default app 8 | -------------------------------------------------------------------------------- /integrations/svelte-vite/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /integrations/svelte-vite/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | export default { 4 | preprocess: vitePreprocess(), 5 | } 6 | -------------------------------------------------------------------------------- /integrations/svelte-vite/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import { svelte } from '@sveltejs/vite-plugin-svelte' 3 | 4 | export default defineConfig({ 5 | plugins: [svelte()], 6 | }) 7 | -------------------------------------------------------------------------------- /integrations/vue-vite/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /integrations/vue-vite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vite + Vue + TS 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /integrations/vue-vite/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-vite", 3 | "private": true, 4 | "type": "module", 5 | "scripts": { 6 | "build": "vite build" 7 | }, 8 | "dependencies": { 9 | "@tanstack/vue-query": "workspace:*", 10 | "vue": "^3.4.27" 11 | }, 12 | "devDependencies": { 13 | "@vitejs/plugin-vue": "^5.2.1", 14 | "typescript": "5.8.3", 15 | "vite": "^6.2.4", 16 | "vue-tsc": "^2.2.8" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /integrations/vue-vite/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import { VueQueryPlugin } from '@tanstack/vue-query' 4 | 5 | createApp(App).use(VueQueryPlugin).mount('#app') 6 | -------------------------------------------------------------------------------- /integrations/vue-vite/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /integrations/vue-vite/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | export default defineConfig({ 5 | plugins: [vue()], 6 | }) 7 | -------------------------------------------------------------------------------- /media/logo-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/media/logo-light.png -------------------------------------------------------------------------------- /media/logo.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/media/logo.sketch -------------------------------------------------------------------------------- /media/repo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/media/repo-dark.png -------------------------------------------------------------------------------- /media/repo-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/media/repo-header.png -------------------------------------------------------------------------------- /packages/angular-query-devtools-experimental/.attw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignoreRules": [ 3 | "cjs-resolves-to-esm", 4 | "internal-resolution-error", 5 | "no-resolution" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/angular-query-devtools-experimental/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/angular-query-devtools-experimental/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './inject-devtools-panel' 2 | -------------------------------------------------------------------------------- /packages/angular-query-devtools-experimental/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { 2 | BrowserDynamicTestingModule, 3 | platformBrowserDynamicTesting, 4 | } from '@angular/platform-browser-dynamic/testing' 5 | import { getTestBed } from '@angular/core/testing' 6 | 7 | getTestBed().initTestEnvironment( 8 | BrowserDynamicTestingModule, 9 | platformBrowserDynamicTesting(), 10 | ) 11 | -------------------------------------------------------------------------------- /packages/angular-query-devtools-experimental/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/angular-query-devtools-experimental/tsup.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup' 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | sourcemap: true, 6 | clean: true, 7 | format: ['esm'], 8 | dts: true, 9 | outDir: 'build', 10 | outExtension({ format }) { 11 | return format === 'esm' ? { js: '.mjs' } : { js: '.js' } 12 | }, 13 | }) 14 | -------------------------------------------------------------------------------- /packages/angular-query-experimental/.attw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignoreRules": ["cjs-resolves-to-esm", "no-resolution"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/angular-query-experimental/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/angular-query-experimental/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { 2 | BrowserDynamicTestingModule, 3 | platformBrowserDynamicTesting, 4 | } from '@angular/platform-browser-dynamic/testing' 5 | import { getTestBed } from '@angular/core/testing' 6 | 7 | getTestBed().initTestEnvironment( 8 | BrowserDynamicTestingModule, 9 | platformBrowserDynamicTesting(), 10 | ) 11 | -------------------------------------------------------------------------------- /packages/angular-query-experimental/src/util/index.ts: -------------------------------------------------------------------------------- 1 | export function noop(): void {} 2 | -------------------------------------------------------------------------------- /packages/angular-query-experimental/src/util/is-dev-mode/is-dev-mode.ts: -------------------------------------------------------------------------------- 1 | // Re-export for mocking in tests 2 | 3 | export { isDevMode } from '@angular/core' 4 | -------------------------------------------------------------------------------- /packages/angular-query-experimental/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/angular-query-experimental/tsup.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup' 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | sourcemap: true, 6 | clean: true, 7 | format: ['esm'], 8 | dts: true, 9 | outDir: 'build', 10 | outExtension({ format }) { 11 | return format === 'esm' ? { js: '.mjs' } : { js: '.js' } 12 | }, 13 | }) 14 | -------------------------------------------------------------------------------- /packages/angular-query-persist-client/.attw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignoreRules": ["cjs-resolves-to-esm", "no-resolution"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/angular-query-persist-client/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/angular-query-persist-client/src/index.ts: -------------------------------------------------------------------------------- 1 | // Re-export core 2 | export * from '@tanstack/query-persist-client-core' 3 | 4 | export * from './with-persist-query-client' 5 | -------------------------------------------------------------------------------- /packages/angular-query-persist-client/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { 2 | BrowserDynamicTestingModule, 3 | platformBrowserDynamicTesting, 4 | } from '@angular/platform-browser-dynamic/testing' 5 | import { getTestBed } from '@angular/core/testing' 6 | 7 | getTestBed().initTestEnvironment( 8 | BrowserDynamicTestingModule, 9 | platformBrowserDynamicTesting(), 10 | ) 11 | -------------------------------------------------------------------------------- /packages/angular-query-persist-client/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/angular-query-persist-client/tsup.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup' 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | sourcemap: true, 6 | clean: true, 7 | format: ['esm'], 8 | dts: true, 9 | outDir: 'build', 10 | outExtension({ format }) { 11 | return format === 'esm' ? { js: '.mjs' } : { js: '.js' } 12 | }, 13 | }) 14 | -------------------------------------------------------------------------------- /packages/eslint-plugin-query/.attw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignoreRules": ["false-export-default"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/eslint-plugin-query/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/eslint-plugin-query/src/__tests__/ts-fixture/file.ts: -------------------------------------------------------------------------------- 1 | // File needs to exists 2 | -------------------------------------------------------------------------------- /packages/eslint-plugin-query/src/__tests__/ts-fixture/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "Bundler", 6 | "strict": true, 7 | "skipLibCheck": true 8 | }, 9 | "include": ["**/*"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/eslint-plugin-query/src/types.ts: -------------------------------------------------------------------------------- 1 | export type ExtraRuleDocs = { 2 | recommended: 'strict' | 'error' | 'warn' 3 | } 4 | -------------------------------------------------------------------------------- /packages/eslint-plugin-query/src/utils/get-docs-url.ts: -------------------------------------------------------------------------------- 1 | export const getDocsUrl = (ruleName: string): string => 2 | `https://tanstack.com/query/latest/docs/eslint/${ruleName}` 3 | -------------------------------------------------------------------------------- /packages/eslint-plugin-query/src/utils/unique-by.ts: -------------------------------------------------------------------------------- 1 | export function uniqueBy(arr: Array, fn: (x: T) => unknown): Array { 2 | return arr.filter((x, i, a) => a.findIndex((y) => fn(x) === fn(y)) === i) 3 | } 4 | -------------------------------------------------------------------------------- /packages/eslint-plugin-query/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": ["src", "*.config.js", "*.config.ts", "package.json"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/eslint-plugin-query/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/eslint-plugin-query/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts'] }), 8 | legacyConfig({ entry: ['src/*.ts'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/query-async-storage-persister/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/query-async-storage-persister/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/query-async-storage-persister/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/query-async-storage-persister/src/utils.ts: -------------------------------------------------------------------------------- 1 | export function noop(): void 2 | export function noop(): undefined 3 | export function noop() {} 4 | -------------------------------------------------------------------------------- /packages/query-async-storage-persister/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": ["src", "*.config.js", "*.config.ts", "package.json"], 8 | "references": [{ "path": "../query-persist-client-core" }] 9 | } 10 | -------------------------------------------------------------------------------- /packages/query-async-storage-persister/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/query-async-storage-persister/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts'] }), 8 | legacyConfig({ entry: ['src/*.ts'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/query-broadcast-client-experimental/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/query-broadcast-client-experimental/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/query-broadcast-client-experimental/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/query-broadcast-client-experimental/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": ["src", "*.config.js", "*.config.ts", "package.json"], 8 | "references": [{ "path": "../query-core" }] 9 | } 10 | -------------------------------------------------------------------------------- /packages/query-broadcast-client-experimental/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/query-broadcast-client-experimental/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts'] }), 8 | legacyConfig({ entry: ['src/*.ts'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/query-codemods/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/query-codemods/src/v4/__tests__/replace-import-specifier.test.cjs: -------------------------------------------------------------------------------- 1 | const defineTest = require('jscodeshift/dist/testUtils').defineTest 2 | 3 | defineTest( 4 | __dirname, 5 | 'replace-import-specifier.cjs', 6 | null, 7 | 'replace-import-specifier', 8 | { 9 | parser: 'tsx', 10 | }, 11 | ) 12 | -------------------------------------------------------------------------------- /packages/query-codemods/src/v5/is-loading/__tests__/is-loading.test.cjs: -------------------------------------------------------------------------------- 1 | const defineTest = require('jscodeshift/dist/testUtils').defineTest 2 | 3 | defineTest(__dirname, 'is-loading.cjs', null, 'default-import', { 4 | parser: 'tsx', 5 | }) 6 | 7 | defineTest(__dirname, 'is-loading.cjs', null, 'named-import', { 8 | parser: 'tsx', 9 | }) 10 | -------------------------------------------------------------------------------- /packages/query-codemods/src/v5/keep-previous-data/__tests__/keep-previous-data.test.cjs: -------------------------------------------------------------------------------- 1 | const defineTest = require('jscodeshift/dist/testUtils').defineTest 2 | 3 | defineTest(__dirname, 'keep-previous-data.cjs', null, 'default', { 4 | parser: 'tsx', 5 | }) 6 | 7 | defineTest(__dirname, 'keep-previous-data.cjs', null, 'named', { 8 | parser: 'tsx', 9 | }) 10 | -------------------------------------------------------------------------------- /packages/query-codemods/src/v5/remove-overloads/__tests__/remove-overloads.test.cjs: -------------------------------------------------------------------------------- 1 | const defineTest = require('jscodeshift/dist/testUtils').defineTest 2 | 3 | defineTest(__dirname, 'remove-overloads.cjs', null, 'default-import', { 4 | parser: 'tsx', 5 | }) 6 | 7 | defineTest(__dirname, 'remove-overloads.cjs', null, 'bug-reports', { 8 | parser: 'tsx', 9 | }) 10 | -------------------------------------------------------------------------------- /packages/query-codemods/src/v5/rename-hydrate/__tests__/rename-hydrate.test.cjs: -------------------------------------------------------------------------------- 1 | const defineTest = require('jscodeshift/dist/testUtils').defineTest 2 | 3 | defineTest(__dirname, 'rename-hydrate.cjs', null, 'default-import', { 4 | parser: 'tsx', 5 | }) 6 | 7 | defineTest(__dirname, 'rename-hydrate.cjs', null, 'named-import', { 8 | parser: 'tsx', 9 | }) 10 | -------------------------------------------------------------------------------- /packages/query-codemods/src/v5/rename-properties/__tests__/rename-properties.test.cjs: -------------------------------------------------------------------------------- 1 | const defineTest = require('jscodeshift/dist/testUtils').defineTest 2 | 3 | defineTest(__dirname, 'rename-properties.cjs', null, 'rename-cache-time', { 4 | parser: 'tsx', 5 | }) 6 | 7 | defineTest( 8 | __dirname, 9 | 'rename-properties.cjs', 10 | null, 11 | 'rename-use-error-boundary', 12 | { 13 | parser: 'tsx', 14 | }, 15 | ) 16 | -------------------------------------------------------------------------------- /packages/query-codemods/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": ["src", "*.config.js", "*.config.ts", "package.json"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/query-core/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/query-core/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/query-core/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/query-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": ["src", "*.config.js", "package.json"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/query-core/tsconfig.legacy.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts/legacy" 5 | }, 6 | "include": ["src"], 7 | "exclude": ["src/__tests__"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/query-core/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/query-core/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts'] }), 8 | legacyConfig({ entry: ['src/*.ts'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/query-devtools/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/query-devtools/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/query-devtools/src/__tests__/devtools.test.tsx: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest' 2 | 3 | describe('ReactQueryDevtools', () => { 4 | it('should be able to open and close devtools', () => { 5 | expect(1).toBe(1) 6 | }) 7 | }) 8 | -------------------------------------------------------------------------------- /packages/query-devtools/src/contexts/ThemeContext.ts: -------------------------------------------------------------------------------- 1 | import { createContext, useContext } from 'solid-js' 2 | import type { Accessor } from 'solid-js' 3 | 4 | export const ThemeContext = createContext>( 5 | () => 'dark' as const, 6 | ) 7 | 8 | export function useTheme() { 9 | return useContext(ThemeContext) 10 | } 11 | -------------------------------------------------------------------------------- /packages/query-devtools/src/contexts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './PiPContext' 2 | export * from './QueryDevtoolsContext' 3 | export * from './ThemeContext' 4 | -------------------------------------------------------------------------------- /packages/query-devtools/src/index.ts: -------------------------------------------------------------------------------- 1 | export type { 2 | DevtoolsButtonPosition, 3 | DevtoolsErrorType, 4 | DevtoolsPosition, 5 | } from './contexts' 6 | export { 7 | TanstackQueryDevtools, 8 | type TanstackQueryDevtoolsConfig, 9 | } from './TanstackQueryDevtools' 10 | export { 11 | TanstackQueryDevtoolsPanel, 12 | type TanstackQueryDevtoolsPanelConfig, 13 | } from './TanstackQueryDevtoolsPanel' 14 | -------------------------------------------------------------------------------- /packages/query-devtools/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": ".", 6 | "jsx": "preserve", 7 | "jsxImportSource": "solid-js" 8 | }, 9 | "include": ["src", "*.config.js", "*.config.ts", "package.json"], 10 | "references": [{ "path": "../query-core" }] 11 | } 12 | -------------------------------------------------------------------------------- /packages/query-devtools/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/query-persist-client-core/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/query-persist-client-core/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/query-persist-client-core/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/query-persist-client-core/src/index.ts: -------------------------------------------------------------------------------- 1 | /* istanbul ignore file */ 2 | 3 | export * from './persist' 4 | export * from './retryStrategies' 5 | export * from './createPersister' 6 | -------------------------------------------------------------------------------- /packages/query-persist-client-core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": ["src", "*.config.js", "*.config.ts", "package.json"], 8 | "references": [{ "path": "../query-core" }] 9 | } 10 | -------------------------------------------------------------------------------- /packages/query-persist-client-core/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/query-persist-client-core/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts'] }), 8 | legacyConfig({ entry: ['src/*.ts'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/query-sync-storage-persister/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/query-sync-storage-persister/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/query-sync-storage-persister/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/query-sync-storage-persister/src/utils.ts: -------------------------------------------------------------------------------- 1 | export function noop(): void 2 | export function noop(): undefined 3 | export function noop() {} 4 | -------------------------------------------------------------------------------- /packages/query-sync-storage-persister/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": ["src", "*.config.js", "*.config.ts", "package.json"], 8 | "references": [ 9 | { "path": "../query-core" }, 10 | { "path": "../query-persist-client-core" } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /packages/query-sync-storage-persister/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/query-sync-storage-persister/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts'] }), 8 | legacyConfig({ entry: ['src/*.ts'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/query-test-utils/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/query-test-utils/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/query-test-utils/src/__test__/queryKey.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest' 2 | import { queryKey } from '../queryKey' 3 | 4 | describe('queryKey', () => { 5 | it('should return a query key', () => { 6 | const key = queryKey() 7 | expect(key).toEqual(['query_1']) 8 | }) 9 | it('should return a new query key each time', () => { 10 | expect(queryKey()).not.toEqual(queryKey()) 11 | }) 12 | }) 13 | -------------------------------------------------------------------------------- /packages/query-test-utils/src/__test__/sleep.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest' 2 | import { sleep } from '../sleep' 3 | 4 | describe('sleep', () => { 5 | it('should sleep for the given amount of time', async () => { 6 | const start = Date.now() 7 | await sleep(100) 8 | const end = Date.now() 9 | expect(end - start).toBeGreaterThanOrEqual(100) 10 | }) 11 | }) 12 | -------------------------------------------------------------------------------- /packages/query-test-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export { sleep } from './sleep' 2 | export { queryKey } from './queryKey' 3 | export { mockVisibilityState } from './mockVisibilityState' 4 | -------------------------------------------------------------------------------- /packages/query-test-utils/src/mockVisibilityState.ts: -------------------------------------------------------------------------------- 1 | import { vi } from 'vitest' 2 | import type { MockInstance } from 'vitest' 3 | 4 | export const mockVisibilityState = ( 5 | value: DocumentVisibilityState, 6 | ): MockInstance<() => DocumentVisibilityState> => 7 | vi.spyOn(document, 'visibilityState', 'get').mockReturnValue(value) 8 | -------------------------------------------------------------------------------- /packages/query-test-utils/src/queryKey.ts: -------------------------------------------------------------------------------- 1 | let queryKeyCount = 0 2 | 3 | export const queryKey = (): Array => { 4 | queryKeyCount++ 5 | return [`query_${queryKeyCount}`] 6 | } 7 | -------------------------------------------------------------------------------- /packages/query-test-utils/src/sleep.ts: -------------------------------------------------------------------------------- 1 | export const sleep = (ms: number): Promise => 2 | new Promise((resolve) => { 3 | setTimeout(resolve, ms) 4 | }) 5 | -------------------------------------------------------------------------------- /packages/query-test-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": ["src", "*.config.js", "package.json"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/react-query-devtools/.attw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignoreRules": ["no-resolution"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/react-query-devtools/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/react-query-devtools/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/react-query-devtools/src/__tests__/devtools.test.tsx: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest' 2 | 3 | describe('ReactQueryDevtools', () => { 4 | it('should be able to open and close devtools', () => { 5 | expect(1).toBe(1) 6 | }) 7 | }) 8 | -------------------------------------------------------------------------------- /packages/react-query-devtools/src/__tests__/not-development.test.tsx: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest' 2 | import { ReactQueryDevtools } from '..' 3 | 4 | describe('ReactQueryDevtools not in process.env.NODE_ENV=development', () => { 5 | it('should return null', () => { 6 | expect(process.env.NODE_ENV).not.toBe('development') 7 | expect(ReactQueryDevtools({})).toBeNull() 8 | }) 9 | }) 10 | -------------------------------------------------------------------------------- /packages/react-query-devtools/src/production.ts: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | import * as Devtools from './ReactQueryDevtools' 4 | import * as DevtoolsPanel from './ReactQueryDevtoolsPanel' 5 | 6 | export const ReactQueryDevtools = Devtools.ReactQueryDevtools 7 | export const ReactQueryDevtoolsPanel = DevtoolsPanel.ReactQueryDevtoolsPanel 8 | -------------------------------------------------------------------------------- /packages/react-query-devtools/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": ".", 6 | "jsx": "react-jsx" 7 | }, 8 | "include": [ 9 | "src", 10 | "test-setup.ts", 11 | "*.config.js", 12 | "*.config.ts", 13 | "package.json" 14 | ], 15 | "references": [{ "path": "../query-devtools" }, { "path": "../react-query" }] 16 | } 17 | -------------------------------------------------------------------------------- /packages/react-query-devtools/tsconfig.legacy.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "react-jsx", 5 | "outDir": "./dist-ts/legacy" 6 | }, 7 | "include": ["src"], 8 | "exclude": ["src/__tests__"], 9 | "references": [{ "path": "../query-devtools" }, { "path": "../react-query" }] 10 | } 11 | -------------------------------------------------------------------------------- /packages/react-query-devtools/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/react-query-devtools/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts', 'src/*.tsx'] }), 8 | legacyConfig({ entry: ['src/*.ts', 'src/*.tsx'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/react-query-next-experimental/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/react-query-next-experimental/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/react-query-next-experimental/src/index.ts: -------------------------------------------------------------------------------- 1 | export { ReactQueryStreamedHydration } from './ReactQueryStreamedHydration' 2 | -------------------------------------------------------------------------------- /packages/react-query-next-experimental/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": ".", 6 | "jsx": "react-jsx" 7 | }, 8 | "include": ["src", "*.config.js", "*.config.ts", "package.json"], 9 | "references": [{ "path": "../react-query" }] 10 | } 11 | -------------------------------------------------------------------------------- /packages/react-query-next-experimental/tsconfig.legacy.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "react-jsx", 5 | "outDir": "./dist-ts/legacy" 6 | }, 7 | "include": ["src"], 8 | "exclude": ["src/__tests__"], 9 | "references": [{ "path": "../react-query" }] 10 | } 11 | -------------------------------------------------------------------------------- /packages/react-query-next-experimental/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/react-query-next-experimental/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts', 'src/*.tsx'] }), 8 | legacyConfig({ entry: ['src/*.ts', 'src/*.tsx'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/react-query-persist-client/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/react-query-persist-client/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/react-query-persist-client/src/index.ts: -------------------------------------------------------------------------------- 1 | // Re-export core 2 | export * from '@tanstack/query-persist-client-core' 3 | 4 | export * from './PersistQueryClientProvider' 5 | -------------------------------------------------------------------------------- /packages/react-query-persist-client/tsconfig.legacy.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "react-jsx", 5 | "outDir": "./dist-ts/legacy" 6 | }, 7 | "include": ["src"], 8 | "exclude": ["src/__tests__"], 9 | "references": [ 10 | { "path": "../query-persist-client-core" }, 11 | { "path": "../react-query" } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /packages/react-query-persist-client/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/react-query-persist-client/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts', 'src/*.tsx'] }), 8 | legacyConfig({ entry: ['src/*.ts', 'src/*.tsx'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/react-query/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/react-query/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/react-query/src/IsRestoringProvider.ts: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import * as React from 'react' 3 | 4 | const IsRestoringContext = React.createContext(false) 5 | 6 | export const useIsRestoring = () => React.useContext(IsRestoringContext) 7 | export const IsRestoringProvider = IsRestoringContext.Provider 8 | -------------------------------------------------------------------------------- /packages/react-query/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": ".", 6 | "jsx": "react-jsx" 7 | }, 8 | "include": ["src", "*.config.js", "*.config.ts", "package.json"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/react-query/tsconfig.legacy.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "react-jsx", 5 | "outDir": "./dist-ts/legacy" 6 | }, 7 | "include": ["src"], 8 | "exclude": ["src/__tests__"], 9 | "references": [{ "path": "../query-persist-client-core" }] 10 | } 11 | -------------------------------------------------------------------------------- /packages/react-query/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/react-query/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts', 'src/*.tsx'] }), 8 | legacyConfig({ entry: ['src/*.ts', 'src/*.tsx'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /packages/solid-query-devtools/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/solid-query-devtools/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/solid-query-devtools/src/index.tsx: -------------------------------------------------------------------------------- 1 | import { isDev } from 'solid-js/web' 2 | import { clientOnly } from './devtools' 3 | import type SolidQueryDevtoolsComp from './devtools' 4 | 5 | export const SolidQueryDevtools: typeof SolidQueryDevtoolsComp = isDev 6 | ? clientOnly(() => import('./devtools')) 7 | : function () { 8 | return null 9 | } 10 | -------------------------------------------------------------------------------- /packages/solid-query-devtools/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": ".", 6 | "jsx": "preserve", 7 | "jsxImportSource": "solid-js" 8 | }, 9 | "include": ["src", "*.config.js", "*.config.ts", "package.json"], 10 | "references": [{ "path": "../query-devtools" }, { "path": "../solid-query" }] 11 | } 12 | -------------------------------------------------------------------------------- /packages/solid-query-devtools/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/solid-query-persist-client/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/solid-query-persist-client/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/solid-query-persist-client/src/index.ts: -------------------------------------------------------------------------------- 1 | // Re-export core 2 | export * from '@tanstack/query-persist-client-core' 3 | 4 | export * from './PersistQueryClientProvider' 5 | -------------------------------------------------------------------------------- /packages/solid-query-persist-client/test-setup.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom/vitest' 2 | import { cleanup } from '@solidjs/testing-library' 3 | import { afterEach } from 'vitest' 4 | 5 | // https://github.com/solidjs/solid-testing-library 6 | afterEach(() => cleanup()) 7 | -------------------------------------------------------------------------------- /packages/solid-query-persist-client/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/solid-query/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import rootConfig from './root.eslint.config.js' 4 | 5 | export default [...rootConfig] 6 | -------------------------------------------------------------------------------- /packages/solid-query/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/solid-query/src/isRestoring.ts: -------------------------------------------------------------------------------- 1 | import { createContext, useContext } from 'solid-js' 2 | import type { Accessor } from 'solid-js' 3 | 4 | const IsRestoringContext = createContext>(() => false) 5 | 6 | export const useIsRestoring = () => useContext(IsRestoringContext) 7 | export const IsRestoringProvider = IsRestoringContext.Provider 8 | -------------------------------------------------------------------------------- /packages/solid-query/src/utils.ts: -------------------------------------------------------------------------------- 1 | export function noop(): void {} 2 | -------------------------------------------------------------------------------- /packages/solid-query/test-setup.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom/vitest' 2 | import { cleanup } from '@solidjs/testing-library' 3 | import { afterEach } from 'vitest' 4 | 5 | // https://github.com/solidjs/solid-testing-library 6 | afterEach(() => cleanup()) 7 | -------------------------------------------------------------------------------- /packages/solid-query/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": ".", 6 | "jsx": "preserve", 7 | "jsxImportSource": "solid-js" 8 | }, 9 | "include": [ 10 | "src", 11 | "test-setup.ts", 12 | "*.config.js", 13 | "*.config.ts", 14 | "package.json" 15 | ], 16 | "references": [{ "path": "../query-core" }] 17 | } 18 | -------------------------------------------------------------------------------- /packages/solid-query/tsconfig.legacy.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "jsx": "preserve", 5 | "jsxImportSource": "solid-js", 6 | "outDir": "./dist-ts/legacy" 7 | }, 8 | "include": ["src"], 9 | "exclude": ["src/__tests__"], 10 | "references": [{ "path": "../query-core" }] 11 | } 12 | -------------------------------------------------------------------------------- /packages/solid-query/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/svelte-query-devtools/.attw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignoreRules": ["cjs-resolves-to-esm", "internal-resolution-error"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/svelte-query-devtools/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/svelte-query-devtools/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as SvelteQueryDevtools } from './Devtools.svelte' 2 | -------------------------------------------------------------------------------- /packages/svelte-query-devtools/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | const config = { 4 | preprocess: vitePreprocess(), 5 | } 6 | 7 | export default config 8 | -------------------------------------------------------------------------------- /packages/svelte-query-devtools/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": [ 8 | "src/**/*.js", 9 | "src/**/*.ts", 10 | "src/**/*.svelte", 11 | "*.config.js", 12 | "*.config.ts", 13 | "package.json" 14 | ], 15 | "references": [{ "path": "../query-devtools" }, { "path": "../svelte-query" }] 16 | } 17 | -------------------------------------------------------------------------------- /packages/svelte-query-persist-client/.attw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignoreRules": ["cjs-resolves-to-esm", "internal-resolution-error"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/svelte-query-persist-client/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/svelte-query-persist-client/src/index.ts: -------------------------------------------------------------------------------- 1 | // Re-export core 2 | export * from '@tanstack/query-persist-client-core' 3 | export { default as PersistQueryClientProvider } from './PersistQueryClientProvider.svelte' 4 | -------------------------------------------------------------------------------- /packages/svelte-query-persist-client/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | const config = { 4 | preprocess: vitePreprocess(), 5 | } 6 | 7 | export default config 8 | -------------------------------------------------------------------------------- /packages/svelte-query-persist-client/tests/test-setup.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom/vitest' 2 | -------------------------------------------------------------------------------- /packages/svelte-query-persist-client/tests/utils.ts: -------------------------------------------------------------------------------- 1 | export type StatusResult = { 2 | status: string 3 | fetchStatus: string 4 | data: T | undefined 5 | } 6 | -------------------------------------------------------------------------------- /packages/svelte-query/.attw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignoreRules": ["cjs-resolves-to-esm", "internal-resolution-error"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/svelte-query/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/svelte-query/src/useIsRestoring.ts: -------------------------------------------------------------------------------- 1 | import { getIsRestoringContext } from './context.js' 2 | import type { Readable } from 'svelte/store' 3 | 4 | export function useIsRestoring(): Readable { 5 | return getIsRestoringContext() 6 | } 7 | -------------------------------------------------------------------------------- /packages/svelte-query/src/useQueryClient.ts: -------------------------------------------------------------------------------- 1 | import { getQueryClientContext } from './context.js' 2 | import type { QueryClient } from '@tanstack/query-core' 3 | 4 | export function useQueryClient(queryClient?: QueryClient): QueryClient { 5 | if (queryClient) return queryClient 6 | return getQueryClientContext() 7 | } 8 | -------------------------------------------------------------------------------- /packages/svelte-query/src/utils.ts: -------------------------------------------------------------------------------- 1 | import type { Readable } from 'svelte/store' 2 | import type { StoreOrVal } from './types.js' 3 | 4 | export function isSvelteStore( 5 | obj: StoreOrVal, 6 | ): obj is Readable { 7 | return 'subscribe' in obj && typeof obj.subscribe === 'function' 8 | } 9 | 10 | export function noop(): void {} 11 | -------------------------------------------------------------------------------- /packages/svelte-query/svelte.config.js: -------------------------------------------------------------------------------- 1 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 2 | 3 | const config = { 4 | preprocess: vitePreprocess(), 5 | } 6 | 7 | export default config 8 | -------------------------------------------------------------------------------- /packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte: -------------------------------------------------------------------------------- 1 | 13 | 14 |
Data: {$query.data ?? 'undefined'}
15 | -------------------------------------------------------------------------------- /packages/svelte-query/tests/context/BaseExample.svelte: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /packages/svelte-query/tests/test-setup.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom/vitest' 2 | -------------------------------------------------------------------------------- /packages/vue-query-devtools/.attw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignoreRules": [ 3 | "cjs-resolves-to-esm", 4 | "internal-resolution-error", 5 | "no-resolution" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/vue-query-devtools/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | // @ts-expect-error 4 | import pluginVue from 'eslint-plugin-vue' 5 | import rootConfig from './root.eslint.config.js' 6 | 7 | export default [...rootConfig, ...pluginVue.configs['flat/base']] 8 | -------------------------------------------------------------------------------- /packages/vue-query-devtools/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/vue-query-devtools/src/index.ts: -------------------------------------------------------------------------------- 1 | import devtools from './devtools.vue' 2 | import type { DefineComponent } from 'vue' 3 | import type { DevtoolsOptions } from './types' 4 | 5 | export const VueQueryDevtools = ( 6 | process.env.NODE_ENV !== 'development' 7 | ? function () { 8 | return null 9 | } 10 | : devtools 11 | ) as DefineComponent 12 | -------------------------------------------------------------------------------- /packages/vue-query-devtools/src/production.ts: -------------------------------------------------------------------------------- 1 | import devtools from './devtools.vue' 2 | 3 | export default devtools 4 | -------------------------------------------------------------------------------- /packages/vue-query-devtools/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": [ 8 | "src/**/*.ts", 9 | "src/**/*.vue", 10 | "*.config.js", 11 | "*.config.ts", 12 | "package.json" 13 | ], 14 | "references": [{ "path": "../vue-query" }, { "path": "../query-devtools" }] 15 | } 16 | -------------------------------------------------------------------------------- /packages/vue-query/eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | // @ts-expect-error 4 | import pluginVue from 'eslint-plugin-vue' 5 | import rootConfig from './root.eslint.config.js' 6 | 7 | export default [...rootConfig, ...pluginVue.configs['flat/base']] 8 | -------------------------------------------------------------------------------- /packages/vue-query/media/vue-query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TanStack/query/7cf6ef515fbdda6b79aa1640efd040391b13c7d2/packages/vue-query/media/vue-query.png -------------------------------------------------------------------------------- /packages/vue-query/media/vue-query.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/vue-query/root.eslint.config.js: -------------------------------------------------------------------------------- 1 | ../../eslint.config.js -------------------------------------------------------------------------------- /packages/vue-query/root.tsup.config.js: -------------------------------------------------------------------------------- 1 | ../../scripts/getTsupConfig.js -------------------------------------------------------------------------------- /packages/vue-query/src/__mocks__/useBaseQuery.ts: -------------------------------------------------------------------------------- 1 | import { vi } from 'vitest' 2 | import type { Mock } from 'vitest' 3 | 4 | const { useBaseQuery: originImpl, unrefQueryArgs: originalParse } = 5 | (await vi.importActual('../useBaseQuery')) as any 6 | 7 | export const useBaseQuery: Mock<(...args: Array) => any> = 8 | vi.fn(originImpl) 9 | export const unrefQueryArgs = originalParse 10 | -------------------------------------------------------------------------------- /packages/vue-query/src/__mocks__/useQueryClient.ts: -------------------------------------------------------------------------------- 1 | import { vi } from 'vitest' 2 | import { QueryClient } from '../queryClient' 3 | import type { Mock } from 'vitest' 4 | 5 | const queryClient = new QueryClient({ 6 | defaultOptions: { 7 | queries: { retry: false, gcTime: Infinity }, 8 | }, 9 | }) 10 | 11 | export const useQueryClient: Mock<() => QueryClient> = vi.fn(() => queryClient) 12 | -------------------------------------------------------------------------------- /packages/vue-query/test-setup.ts: -------------------------------------------------------------------------------- 1 | import { vi } from 'vitest' 2 | 3 | vi.mock('vue-demi', async () => { 4 | const vue = await vi.importActual('vue-demi') 5 | return { 6 | ...(vue as any), 7 | inject: vi.fn(), 8 | provide: vi.fn(), 9 | onScopeDispose: vi.fn(), 10 | getCurrentInstance: vi.fn(() => ({ proxy: {} })), 11 | hasInjectionContext: vi.fn(() => true), 12 | } 13 | }) 14 | -------------------------------------------------------------------------------- /packages/vue-query/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts", 5 | "rootDir": "." 6 | }, 7 | "include": [ 8 | "src", 9 | "test-setup.ts", 10 | "*.config.js", 11 | "*.config.ts", 12 | "package.json" 13 | ], 14 | "references": [{ "path": "../query-core" }] 15 | } 16 | -------------------------------------------------------------------------------- /packages/vue-query/tsconfig.legacy.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "./dist-ts/legacy" 5 | }, 6 | "include": ["src"], 7 | "exclude": ["src/__mocks__", "src/__tests__"], 8 | "references": [{ "path": "../query-core" }] 9 | } 10 | -------------------------------------------------------------------------------- /packages/vue-query/tsconfig.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "incremental": false, 5 | "composite": false, 6 | "rootDir": "../../" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/vue-query/tsup.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import { defineConfig } from 'tsup' 4 | import { legacyConfig, modernConfig } from './root.tsup.config.js' 5 | 6 | export default defineConfig([ 7 | modernConfig({ entry: ['src/*.ts', 'src/devtools/*.ts'] }), 8 | legacyConfig({ entry: ['src/*.ts', 'src/devtools/*.ts'] }), 9 | ]) 10 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'packages/*' 3 | - 'integrations/*' 4 | - 'examples/angular/*' 5 | - 'examples/react/*' 6 | - 'examples/solid/*' 7 | - 'examples/svelte/*' 8 | - 'examples/vue/*' 9 | - '!examples/vue/2*' 10 | - '!examples/vue/nuxt*' 11 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** @type {import('prettier').Config} */ 4 | const config = { 5 | semi: false, 6 | singleQuote: true, 7 | trailingComma: 'all', 8 | plugins: ['prettier-plugin-svelte'], 9 | overrides: [{ files: '*.svelte', options: { parser: 'svelte' } }], 10 | } 11 | 12 | export default config 13 | -------------------------------------------------------------------------------- /scripts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "include": ["**/*"] 4 | } 5 | --------------------------------------------------------------------------------