{"id":19904,"library":"eslint-plugin-react-query","title":"ESLint Plugin React Query","description":"Community ESLint plugin enforcing best practices for React Query (TanStack Query) v3+. Current version 1.3.0, released February 2022, with slow release cadence. Adds rules for useQuery object syntax, missing queryKey, and mutationKey. Differentiator: lightweight, dedicated linting for React Query patterns, complementary to the official plugin. Alternative to @tanstack/eslint-plugin-query which is more maintained.","status":"maintenance","version":"1.3.0","language":"javascript","source_language":"en","source_url":"https://github.com/KubaJastrz/eslint-plugin-react-query","tags":["javascript"],"install":[{"cmd":"npm install eslint-plugin-react-query","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-react-query","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-react-query","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; ESLint >=7.30 required.","package":"eslint","optional":false}],"imports":[{"note":"ESM export is default, but CommonJS require also works.","wrong":"const plugin = require('eslint-plugin-react-query')","symbol":"plugin","correct":"import plugin from 'eslint-plugin-react-query'"},{"note":"Rules object contains all rule definitions, used for programmatic access.","symbol":"rules","correct":"import { rules } from 'eslint-plugin-react-query'"},{"note":"Access recommended config via configs.recommended.","wrong":"const configs = require('eslint-plugin-react-query').configs","symbol":"configs","correct":"import { configs } from 'eslint-plugin-react-query'"}],"quickstart":{"code":"// .eslintrc.js\nmodule.exports = {\n  plugins: ['react-query'],\n  extends: ['plugin:react-query/recommended'],\n  rules: {\n    'react-query/prefer-query-object-syntax': 'warn',\n  },\n};\n\n// Example code that triggers rule:\n// useQuery('key', fetchSomething) // no object syntax -> warning\n// useQuery({ queryKey: 'key', queryFn: fetchSomething }) // ok\n","lang":"javascript","description":"Set up ESLint with react-query plugin rules including object syntax enforcement."},"warnings":[{"fix":"Switch to @tanstack/eslint-plugin-query for official support.","message":"Plugin is not actively maintained; for TanStack Query v4+, consider using @tanstack/eslint-plugin-query.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use object syntax for useQuery to avoid warnings.","message":"prefer-query-object-syntax rule is fixable but may conflict with other patterns.","severity":"deprecated","affected_versions":">=1.2.0"},{"fix":"Manually enforce keys for other hooks or use other lint rules.","message":"Rules only cover useQuery and useMutation; useInfiniteQuery and other hooks are not validated.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run: npm install --save-dev eslint-plugin-react-query","cause":"Plugin not installed or missing from package.json devDependencies.","error":"ESLint couldn't find the plugin \"eslint-plugin-react-query\"."},{"fix":"Check supported rules in README: mutation-key, prefer-query-object-syntax, query-key.","cause":"Typo in rule name or rule not yet implemented.","error":"Definition for rule 'react-query/rule-name' was not found."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}