From 2576874ae8da4d56efd570a956001613084f928a Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 14 Jun 2022 06:28:32 -0600 Subject: [PATCH 01/47] rebrand --- .gitignore | 10 +- .gitpod.yml | 18 - .nvmrc | 1 + .prettierrc | 5 + CONTRIBUTING.md | 125 - LICENSE | 2 +- .babelrc.js => babel.config.js | 2 +- broadcastQueryClient-experimental/index.d.ts | 1 - broadcastQueryClient-experimental/index.js | 1 - .../package.json | 6 - createAsyncStoragePersister/index.d.ts | 1 - createAsyncStoragePersister/index.js | 1 - createWebStoragePersister/index.d.ts | 1 - createWebStoragePersister/index.js | 1 - docs/index.js | 424 - examples/react/auto-refetching/package.json | 3 +- .../react/basic-graphql-request/package.json | 2 + examples/react/basic-typescript/package.json | 2 + examples/react/basic/package.json | 2 + examples/react/custom-hooks/package.json | 2 + .../react/default-query-function/package.json | 2 + examples/react/focus-refetching/package.json | 3 +- .../load-more-infinite-scroll/package.json | 3 +- examples/react/nextjs/package.json | 3 +- examples/react/offline/package.json | 2 + .../package.json | 3 +- .../react/optimistic-updates/package.json | 3 +- examples/react/pagination/package.json | 3 +- examples/react/playground/package.json | 2 + examples/react/prefetching/package.json | 3 +- examples/react/react-native/package.json | 6 +- .../react-native/src/components/Divider.tsx | 2 +- .../src/components/ErrorMessage.tsx | 2 +- .../react-native/src/components/ListItem.tsx | 2 +- .../src/components/LoadingIndicator.tsx | 2 +- .../src/hooks/useOnlineManager.ts | 2 +- .../src/hooks/useRefreshByUser.ts | 2 +- .../src/hooks/useRefreshOnFocus.ts | 2 +- .../src/navigation/MoviesStack.tsx | 2 +- .../src/screens/MoviesListScreen.tsx | 2 +- examples/react/rick-morty/package.json | 2 + examples/react/simple/package.json | 2 + examples/react/star-wars/package.json | 2 + examples/react/suspense/package.json | 3 +- jest.config.ts | 33 + lerna.json | 6 + .eslintrc => old/.eslintrc | 0 jest.config.js => old/jest.config.js | 0 jest.setup.js => old/jest.setup.js | 0 old/rollup.config.js | 106 + package.json | 246 +- .../package.json | 21 + .../src/__tests__}/asyncThrottle.test.ts | 0 .../src}/asyncThrottle.ts | 0 .../src}/index.ts | 6 +- .../tsconfig.json | 9 + .../query-async-storage-persister/yarn.lock | 25 + packages/query-broadcast-client/package.json | 21 + .../query-broadcast-client/src}/index.ts | 4 +- packages/query-broadcast-client/tsconfig.json | 9 + packages/query-broadcast-client/yarn.lock | 25 + packages/query-core/package.json | 21 + .../query-core/src}/focusManager.ts | 0 .../query-core/src}/hydration.ts | 0 .../core => packages/query-core/src}/index.ts | 9 +- .../query-core/src}/infiniteQueryBehavior.ts | 0 .../query-core/src}/infiniteQueryObserver.ts | 0 .../query-core/src}/logger.native.ts | 0 .../query-core/src}/logger.ts | 0 .../query-core/src}/mutation.ts | 0 .../query-core/src}/mutationCache.ts | 0 .../query-core/src}/mutationObserver.ts | 0 .../query-core/src}/notifyManager.ts | 0 .../query-core/src}/onlineManager.ts | 0 .../query-core/src}/queriesObserver.ts | 0 .../core => packages/query-core/src}/query.ts | 0 .../query-core/src}/queryCache.ts | 0 .../query-core/src}/queryClient.ts | 0 .../query-core/src}/queryObserver.ts | 0 .../query-core/src}/removable.ts | 0 .../query-core/src}/retryer.ts | 0 .../query-core/src}/subscribable.ts | 0 .../src}/tests/focusManager.test.tsx | 0 .../query-core/src}/tests/hydration.test.tsx | 0 .../src}/tests/infiniteQueryBehavior.test.tsx | 0 .../src}/tests/infiniteQueryObserver.test.tsx | 0 .../src}/tests/mutationCache.test.tsx | 0 .../src}/tests/mutationObserver.test.tsx | 0 .../query-core/src}/tests/mutations.test.tsx | 0 .../src}/tests/notifyManager.test.tsx | 0 .../src}/tests/onlineManager.test.tsx | 0 .../src}/tests/queriesObserver.test.tsx | 0 .../query-core/src}/tests/query.test.tsx | 0 .../query-core/src}/tests/queryCache.test.tsx | 0 .../src}/tests/queryClient.test.tsx | 0 .../src}/tests/queryObserver.test.tsx | 0 .../query-core/src}/tests/utils.test.tsx | 0 .../core => packages/query-core/src}/types.ts | 0 .../core => packages/query-core/src}/utils.ts | 0 packages/query-core/tsconfig.json | 9 + packages/query-core/yarn.lock | 25 + .../query-sync-storage-persister/package.json | 21 + .../src/__tests__}/storageIsFull.test.ts | 4 +- .../src}/index.ts | 6 +- .../tsconfig.json | 9 + .../query-sync-storage-persister/yarn.lock | 25 + packages/react-query-devtools/package.json | 21 + .../react-query-devtools/src}/Explorer.tsx | 2 +- .../react-query-devtools/src}/Logo.tsx | 0 .../src/__tests__}/Explorer.test.tsx | 2 +- .../src/__tests__}/devtools.test.tsx | 2 +- .../src/__tests__}/utils.tsx | 4 +- .../react-query-devtools/src}/devtools.tsx | 10 +- .../react-query-devtools/src}/index.ts | 0 .../react-query-devtools/src}/noop.ts | 0 .../src}/styledComponents.ts | 0 .../react-query-devtools/src}/theme.tsx | 2 +- .../src}/useLocalStorage.ts | 2 +- .../src}/useMediaQuery.ts | 2 +- .../react-query-devtools/src}/utils.ts | 4 +- packages/react-query-devtools/tsconfig.json | 9 + .../PersistQueryClientProvider.tsx | 5 +- .../PersistQueryClientProvider.test.tsx | 2 +- .../__tests__}/persist.test.tsx | 0 .../react-query-persist-client}/index.ts | 0 .../react-query-persist-client/package.json | 21 + .../react-query-persist-client}/persist.ts | 2 +- .../retryStrategies.ts | 0 packages/react-query/__tests__/jest.setup.js | 1 + .../react-query/codemods}/jest.config.js | 0 .../__testfixtures__/default-import.input.tsx | 0 .../default-import.output.tsx | 0 .../__testfixtures__/named-import.input.tsx | 0 .../__testfixtures__/named-import.output.tsx | 0 .../namespaced-import.input.tsx | 0 .../namespaced-import.output.tsx | 0 .../parameter-is-identifier.input.tsx | 0 .../parameter-is-identifier.output.tsx | 0 .../parameter-is-object-expression.input.tsx | 0 .../parameter-is-object-expression.output.tsx | 0 .../__testfixtures__/type-arguments.input.tsx | 0 .../type-arguments.output.tsx | 0 .../v4/__tests__/key-transformation.test.js | 0 .../codemods}/v4/key-transformation.js | 0 .../react-query/codemods}/v4/utils/index.js | 0 .../v4/utils/replacers/key-replacer.js | 0 .../transformers/query-cache-transformer.js | 0 .../transformers/query-client-transformer.js | 0 .../use-query-like-transformer.js | 0 .../v4/utils/unprocessable-key-error.js | 0 packages/react-query/package.json | 51 + .../react-query/src}/Hydrate.tsx | 4 +- .../react-query/src}/QueryClientProvider.tsx | 6 +- .../src}/QueryErrorResetBoundary.tsx | 2 +- .../src/__tests__}/Hydrate.test.tsx | 4 +- .../__tests__}/QueryClientProvider.test.tsx | 2 +- .../QueryResetErrorBoundary.test.tsx | 2 +- .../src/__tests__}/ssr-hydration.test.tsx | 2 +- .../react-query/src/__tests__}/ssr.test.tsx | 2 +- .../src/__tests__}/suspense.test.tsx | 2 +- .../src/__tests__}/useInfiniteQuery.test.tsx | 2 +- .../src/__tests__}/useIsFetching.test.tsx | 4 +- .../src/__tests__}/useIsMutating.test.tsx | 2 +- .../src/__tests__}/useMutation.test.tsx | 2 +- .../src/__tests__}/useQueries.test.tsx | 2 +- .../src/__tests__}/useQuery.test.tsx | 2 +- .../react-query/src/__tests__}/utils.tsx | 2 +- .../react-query/src}/index.ts | 20 +- .../react-query/src}/isRestoring.tsx | 2 +- .../src}/reactBatchedUpdates.native.ts | 0 .../react-query/src}/reactBatchedUpdates.ts | 2 +- .../react-query/src}/setBatchUpdatesFn.ts | 2 +- .../react-query/src}/types.ts | 6 +- .../react-query/src}/useBaseQuery.ts | 4 +- .../react-query/src}/useInfiniteQuery.ts | 5 +- .../react-query/src}/useIsFetching.ts | 7 +- .../react-query/src}/useIsMutating.ts | 8 +- .../react-query/src}/useMutation.ts | 47 +- .../react-query/src}/useQueries.ts | 6 +- .../react-query/src}/useQuery.ts | 4 +- .../src}/useSyncExternalStore.native.ts | 0 .../react-query/src}/useSyncExternalStore.ts | 2 +- .../react-query/src}/utils.ts | 0 packages/react-query/tsconfig.json | 9 + packages/react-query/yarn.lock | 25 + persistQueryClient/index.d.ts | 1 - persistQueryClient/index.js | 1 - prettier.config.js | 12 - reactjs/index.d.ts | 1 - reactjs/index.js | 1 - rollup.config.js | 111 +- rollup.config.ts | 254 + src/index.ts | 2 - {src/tests => tests}/utils.ts | 4 +- tsconfig.base.json | 35 + tsconfig.json | 31 +- tsconfig.types.json | 21 - yarn.lock | 24840 +++++++++++++--- 198 files changed, 21002 insertions(+), 5955 deletions(-) delete mode 100644 .gitpod.yml create mode 100644 .nvmrc create mode 100644 .prettierrc delete mode 100644 CONTRIBUTING.md rename .babelrc.js => babel.config.js (99%) delete mode 100644 broadcastQueryClient-experimental/index.d.ts delete mode 100644 broadcastQueryClient-experimental/index.js delete mode 100644 broadcastQueryClient-experimental/package.json delete mode 100644 createAsyncStoragePersister/index.d.ts delete mode 100644 createAsyncStoragePersister/index.js delete mode 100644 createWebStoragePersister/index.d.ts delete mode 100644 createWebStoragePersister/index.js delete mode 100644 docs/index.js create mode 100644 jest.config.ts create mode 100644 lerna.json rename .eslintrc => old/.eslintrc (100%) rename jest.config.js => old/jest.config.js (100%) rename jest.setup.js => old/jest.setup.js (100%) create mode 100644 old/rollup.config.js create mode 100644 packages/query-async-storage-persister/package.json rename {src/createAsyncStoragePersister/tests => packages/query-async-storage-persister/src/__tests__}/asyncThrottle.test.ts (100%) rename {src/createAsyncStoragePersister => packages/query-async-storage-persister/src}/asyncThrottle.ts (100%) rename {src/createAsyncStoragePersister => packages/query-async-storage-persister/src}/index.ts (95%) create mode 100644 packages/query-async-storage-persister/tsconfig.json create mode 100644 packages/query-async-storage-persister/yarn.lock create mode 100644 packages/query-broadcast-client/package.json rename {src/broadcastQueryClient-experimental => packages/query-broadcast-client/src}/index.ts (94%) create mode 100644 packages/query-broadcast-client/tsconfig.json create mode 100644 packages/query-broadcast-client/yarn.lock create mode 100644 packages/query-core/package.json rename {src/core => packages/query-core/src}/focusManager.ts (100%) rename {src/core => packages/query-core/src}/hydration.ts (100%) rename {src/core => packages/query-core/src}/index.ts (87%) rename {src/core => packages/query-core/src}/infiniteQueryBehavior.ts (100%) rename {src/core => packages/query-core/src}/infiniteQueryObserver.ts (100%) rename {src/core => packages/query-core/src}/logger.native.ts (100%) rename {src/core => packages/query-core/src}/logger.ts (100%) rename {src/core => packages/query-core/src}/mutation.ts (100%) rename {src/core => packages/query-core/src}/mutationCache.ts (100%) rename {src/core => packages/query-core/src}/mutationObserver.ts (100%) rename {src/core => packages/query-core/src}/notifyManager.ts (100%) rename {src/core => packages/query-core/src}/onlineManager.ts (100%) rename {src/core => packages/query-core/src}/queriesObserver.ts (100%) rename {src/core => packages/query-core/src}/query.ts (100%) rename {src/core => packages/query-core/src}/queryCache.ts (100%) rename {src/core => packages/query-core/src}/queryClient.ts (100%) rename {src/core => packages/query-core/src}/queryObserver.ts (100%) rename {src/core => packages/query-core/src}/removable.ts (100%) rename {src/core => packages/query-core/src}/retryer.ts (100%) rename {src/core => packages/query-core/src}/subscribable.ts (100%) rename {src/core => packages/query-core/src}/tests/focusManager.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/hydration.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/infiniteQueryBehavior.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/infiniteQueryObserver.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/mutationCache.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/mutationObserver.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/mutations.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/notifyManager.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/onlineManager.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/queriesObserver.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/query.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/queryCache.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/queryClient.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/queryObserver.test.tsx (100%) rename {src/core => packages/query-core/src}/tests/utils.test.tsx (100%) rename {src/core => packages/query-core/src}/types.ts (100%) rename {src/core => packages/query-core/src}/utils.ts (100%) create mode 100644 packages/query-core/tsconfig.json create mode 100644 packages/query-core/yarn.lock create mode 100644 packages/query-sync-storage-persister/package.json rename {src/createWebStoragePersister/tests => packages/query-sync-storage-persister/src/__tests__}/storageIsFull.test.ts (98%) rename {src/createWebStoragePersister => packages/query-sync-storage-persister/src}/index.ts (97%) create mode 100644 packages/query-sync-storage-persister/tsconfig.json create mode 100644 packages/query-sync-storage-persister/yarn.lock create mode 100644 packages/react-query-devtools/package.json rename {src/devtools => packages/react-query-devtools/src}/Explorer.tsx (99%) rename {src/devtools => packages/react-query-devtools/src}/Logo.tsx (100%) rename {src/devtools/tests => packages/react-query-devtools/src/__tests__}/Explorer.test.tsx (98%) rename {src/devtools/tests => packages/react-query-devtools/src/__tests__}/devtools.test.tsx (99%) rename {src/devtools/tests => packages/react-query-devtools/src/__tests__}/utils.tsx (96%) rename {src/devtools => packages/react-query-devtools/src}/devtools.tsx (99%) rename {src/devtools => packages/react-query-devtools/src}/index.ts (100%) rename {src/devtools => packages/react-query-devtools/src}/noop.ts (100%) rename {src/devtools => packages/react-query-devtools/src}/styledComponents.ts (100%) rename {src/devtools => packages/react-query-devtools/src}/theme.tsx (95%) rename {src/devtools => packages/react-query-devtools/src}/useLocalStorage.ts (97%) rename {src/devtools => packages/react-query-devtools/src}/useMediaQuery.ts (96%) rename {src/devtools => packages/react-query-devtools/src}/utils.ts (97%) create mode 100644 packages/react-query-devtools/tsconfig.json rename {src/persistQueryClient => packages/react-query-persist-client}/PersistQueryClientProvider.tsx (88%) rename {src/persistQueryClient/tests => packages/react-query-persist-client/__tests__}/PersistQueryClientProvider.test.tsx (99%) rename {src/persistQueryClient/tests => packages/react-query-persist-client/__tests__}/persist.test.tsx (100%) rename {src/persistQueryClient => packages/react-query-persist-client}/index.ts (100%) create mode 100644 packages/react-query-persist-client/package.json rename {src/persistQueryClient => packages/react-query-persist-client}/persist.ts (99%) rename {src/persistQueryClient => packages/react-query-persist-client}/retryStrategies.ts (100%) create mode 100644 packages/react-query/__tests__/jest.setup.js rename {codemods => packages/react-query/codemods}/jest.config.js (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/default-import.input.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/default-import.output.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/named-import.input.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/named-import.output.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/namespaced-import.input.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/namespaced-import.output.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/parameter-is-identifier.input.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/parameter-is-identifier.output.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/parameter-is-object-expression.input.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/parameter-is-object-expression.output.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/type-arguments.input.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__testfixtures__/type-arguments.output.tsx (100%) rename {codemods => packages/react-query/codemods}/v4/__tests__/key-transformation.test.js (100%) rename {codemods => packages/react-query/codemods}/v4/key-transformation.js (100%) rename {codemods => packages/react-query/codemods}/v4/utils/index.js (100%) rename {codemods => packages/react-query/codemods}/v4/utils/replacers/key-replacer.js (100%) rename {codemods => packages/react-query/codemods}/v4/utils/transformers/query-cache-transformer.js (100%) rename {codemods => packages/react-query/codemods}/v4/utils/transformers/query-client-transformer.js (100%) rename {codemods => packages/react-query/codemods}/v4/utils/transformers/use-query-like-transformer.js (100%) rename {codemods => packages/react-query/codemods}/v4/utils/unprocessable-key-error.js (100%) create mode 100644 packages/react-query/package.json rename {src/reactjs => packages/react-query/src}/Hydrate.tsx (91%) rename {src/reactjs => packages/react-query/src}/QueryClientProvider.tsx (94%) rename {src/reactjs => packages/react-query/src}/QueryErrorResetBoundary.tsx (97%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/Hydrate.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/QueryClientProvider.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/QueryResetErrorBoundary.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/ssr-hydration.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/ssr.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/suspense.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/useInfiniteQuery.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/useIsFetching.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/useIsMutating.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/useMutation.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/useQueries.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/useQuery.test.tsx (99%) rename {src/reactjs/tests => packages/react-query/src/__tests__}/utils.tsx (98%) rename {src/reactjs => packages/react-query/src}/index.ts (60%) rename {src/reactjs => packages/react-query/src}/isRestoring.tsx (86%) rename {src/reactjs => packages/react-query/src}/reactBatchedUpdates.native.ts (100%) rename {src/reactjs => packages/react-query/src}/reactBatchedUpdates.ts (65%) rename {src/reactjs => packages/react-query/src}/setBatchUpdatesFn.ts (70%) rename {src/reactjs => packages/react-query/src}/types.ts (97%) rename {src/reactjs => packages/react-query/src}/useBaseQuery.ts (97%) rename {src/reactjs => packages/react-query/src}/useInfiniteQuery.ts (90%) rename {src/reactjs => packages/react-query/src}/useIsFetching.ts (87%) rename {src/reactjs => packages/react-query/src}/useIsMutating.ts (80%) rename {src/reactjs => packages/react-query/src}/useMutation.ts (85%) rename {src/reactjs => packages/react-query/src}/useQueries.ts (97%) rename {src/reactjs => packages/react-query/src}/useQuery.ts (91%) rename {src/reactjs => packages/react-query/src}/useSyncExternalStore.native.ts (100%) rename {src/reactjs => packages/react-query/src}/useSyncExternalStore.ts (50%) rename {src/reactjs => packages/react-query/src}/utils.ts (100%) create mode 100644 packages/react-query/tsconfig.json create mode 100644 packages/react-query/yarn.lock delete mode 100644 persistQueryClient/index.d.ts delete mode 100644 persistQueryClient/index.js delete mode 100644 prettier.config.js delete mode 100644 reactjs/index.d.ts delete mode 100644 reactjs/index.js create mode 100644 rollup.config.ts delete mode 100644 src/index.ts rename {src/tests => tests}/utils.ts (95%) create mode 100644 tsconfig.base.json delete mode 100644 tsconfig.types.json diff --git a/.gitignore b/.gitignore index f821d4d40a..1c7ca21b8f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ node_modules # builds types build +*/build dist lib es @@ -30,7 +31,12 @@ yarn-error.log* .history size-plugin.json stats-hydration.json -stats-react.json +stats.json stats.html .vscode/settings.json -.idea/ + +*.log +.DS_Store +node_modules +.cache +dist diff --git a/.gitpod.yml b/.gitpod.yml deleted file mode 100644 index 7639205ec9..0000000000 --- a/.gitpod.yml +++ /dev/null @@ -1,18 +0,0 @@ -tasks: - - name: Auto Build - init: | - yarn install - gp sync-done boot - command: yarn run start - - - name: Docs - before: cd docs/ - init: | - gp sync-await boot - yarn install - command: yarn dev - openMode: split-right - -ports: - - port: 3000 - onOpen: open-preview diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000..4ec320b217 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v14.17.6 diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000000..e3b414c7e0 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "semi": false, + "singleQuote": true, + "trailingComma": "all" +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index d406a0ee7b..0000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,125 +0,0 @@ -# Contributing - -## Questions - -If you have questions about implementation details, help or support, then please use our dedicated community forum at [GitHub Discussions](https://github.com/tannerlinsley/react-query/discussions) **PLEASE NOTE:** If you choose to instead open an issue for your question, your issue will be immediately closed and redirected to the forum. - -## Reporting Issues - -If you have found what you think is a bug, please [file an issue](https://github.com/tannerlinsley/react-query/issues/new). **PLEASE NOTE:** Issues that are identified as implementation questions or non-issues will be immediately closed and redirected to [GitHub Discussions](https://github.com/tannerlinsley/react-query/discussions) - -## Suggesting new features - -If you are here to suggest a feature, first create an issue if it does not already exist. From there, we will discuss use-cases for the feature and then finally discuss how it could be implemented. - -## Development - -If you have been assigned to fix an issue or develop a new feature, please follow these steps to get started: - -- Fork this repository -- Install dependencies by running `$ yarn` -- Link `react-query` locally by running `$ yarn link` -- Auto-build files as you edit by running `$ yarn start` -- Implement your changes and tests to files in the `src/` directory and corresponding test files -- To run examples, follow their individual directions. Usually this is just `$ yarn && yarn start`. -- To run examples using your local build, link to the local `react-query` by running `$ yarn link react-query` from the example's directory -- Document your changes in the appropriate doc page -- Git stage your required changes and commit (see below commit guidelines) -- Submit PR for review - -## Online one-click setup - -You can use Gitpod (An Online Open Source VS Code like IDE which is free for Open Source) for developing online. With a single click it will start a workspace and automatically: - -- clone the `react-query` repo. -- install all the dependencies in `/` and `/docs`. -- run `yarn start` in the root(`/`) to Auto-build files. -- run `yarn dev` in `/docs`. - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/tannerlinsley/react-query) - -## Commit message conventions - -`react-query` is using [Angular Commit Message Conventions](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines). - -We have very precise rules over how our git commit messages can be formatted. This leads to **more readable messages** that are easy to follow when looking through the **project history**. - -### Commit Message Format - -Each commit message consists of a **header**, a **body** and a **footer**. The header has a special -format that includes a **type**, a **scope** and a **subject**: - -``` -(): - - - -