snapshot of https://github.com/TanStack/query.git (main, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
126
docs/eslint/eslint-plugin-query.md
Normal file
126
docs/eslint/eslint-plugin-query.md
Normal file
@@ -0,0 +1,126 @@
|
||||
---
|
||||
id: eslint-plugin-query
|
||||
title: ESLint Plugin Query
|
||||
---
|
||||
|
||||
TanStack Query comes with its own ESLint plugin. This plugin is used to enforce best practices and to help you avoid common mistakes.
|
||||
|
||||
## Installation
|
||||
|
||||
The plugin is a separate package that you need to install:
|
||||
|
||||
```bash
|
||||
npm i -D @tanstack/eslint-plugin-query
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
pnpm add -D @tanstack/eslint-plugin-query
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
yarn add -D @tanstack/eslint-plugin-query
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
bun add -D @tanstack/eslint-plugin-query
|
||||
```
|
||||
|
||||
## Flat Config (`eslint.config.js`)
|
||||
|
||||
### Recommended setup
|
||||
|
||||
To enable all of the recommended rules for our plugin, add the following config:
|
||||
|
||||
```js
|
||||
import pluginQuery from '@tanstack/eslint-plugin-query'
|
||||
|
||||
export default [
|
||||
...pluginQuery.configs['flat/recommended'],
|
||||
// Any other config...
|
||||
]
|
||||
```
|
||||
|
||||
### Recommended strict setup
|
||||
|
||||
The `flat/recommended-strict` config extends `flat/recommended` with additional opinionated rules that enforce best practices more aggressively.
|
||||
|
||||
```js
|
||||
import pluginQuery from '@tanstack/eslint-plugin-query'
|
||||
|
||||
export default [
|
||||
...pluginQuery.configs['flat/recommended-strict'],
|
||||
// Any other config...
|
||||
]
|
||||
```
|
||||
|
||||
### Custom setup
|
||||
|
||||
Alternatively, you can load the plugin and configure only the rules you want to use:
|
||||
|
||||
```js
|
||||
import pluginQuery from '@tanstack/eslint-plugin-query'
|
||||
|
||||
export default [
|
||||
{
|
||||
plugins: {
|
||||
'@tanstack/query': pluginQuery,
|
||||
},
|
||||
rules: {
|
||||
'@tanstack/query/exhaustive-deps': 'error',
|
||||
},
|
||||
},
|
||||
// Any other config...
|
||||
]
|
||||
```
|
||||
|
||||
## Legacy Config (`.eslintrc`)
|
||||
|
||||
### Recommended setup
|
||||
|
||||
To enable all of the recommended rules for our plugin, add `plugin:@tanstack/query/recommended` in extends:
|
||||
|
||||
```json
|
||||
{
|
||||
"extends": ["plugin:@tanstack/query/recommended"]
|
||||
}
|
||||
```
|
||||
|
||||
### Recommended strict setup
|
||||
|
||||
The `recommendedStrict` config extends `recommended` with additional opinionated rules:
|
||||
|
||||
```json
|
||||
{
|
||||
"extends": ["plugin:@tanstack/query/recommendedStrict"]
|
||||
}
|
||||
```
|
||||
|
||||
### Custom setup
|
||||
|
||||
Alternatively, add `@tanstack/query` to the plugins section, and configure the rules you want to use:
|
||||
|
||||
```json
|
||||
{
|
||||
"plugins": ["@tanstack/query"],
|
||||
"rules": {
|
||||
"@tanstack/query/exhaustive-deps": "error"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
- [@tanstack/query/exhaustive-deps](./exhaustive-deps.md)
|
||||
- [@tanstack/query/no-rest-destructuring](./no-rest-destructuring.md)
|
||||
- [@tanstack/query/stable-query-client](./stable-query-client.md)
|
||||
- [@tanstack/query/no-unstable-deps](./no-unstable-deps.md)
|
||||
- [@tanstack/query/infinite-query-property-order](./infinite-query-property-order.md)
|
||||
- [@tanstack/query/no-void-query-fn](./no-void-query-fn.md)
|
||||
- [@tanstack/query/mutation-property-order](./mutation-property-order.md)
|
||||
- [@tanstack/query/prefer-query-options](./prefer-query-options.md)
|
||||
Reference in New Issue
Block a user