├── .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 |
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 | ,
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 |
2 | {{ data }}
3 |
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 | You need to enable JavaScript to run this app.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/integrations/react-webpack-5/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | react-webpack-5
6 |
7 |
8 | You need to enable JavaScript to run this app.
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 |
--------------------------------------------------------------------------------