{"_id":"oxlint-plugin-query","_rev":"2-dbd5d1db3ca3b3a664c1ba0c9e7ade11","name":"oxlint-plugin-query","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"oxlint-plugin-query","version":"0.1.0","keywords":["oxlint","eslint","tanstack","query","tanstack-query","react-query","lint"],"license":"MIT","_id":"oxlint-plugin-query@0.1.0","maintainers":[{"name":"takinprofit","email":"takinprofit@gmail.com"}],"homepage":"https://github.com/takinprofit/biome-plugins#readme","bugs":{"url":"https://github.com/takinprofit/biome-plugins/issues"},"dist":{"shasum":"685a5893419f24009895fb54c69d492fc748cd5e","tarball":"https://registry.npmjs.org/oxlint-plugin-query/-/oxlint-plugin-query-0.1.0.tgz","fileCount":3,"integrity":"sha512-In8deyOrW2RuXI6Rfdb/sfcxAhgXmQeWo7cuwboTCGN3M4P2dPR82kWAUmJmcSYWSF/1r7LRMrh7HvhFBlatUA==","signatures":[{"sig":"MEYCIQCZKmwoC8aUpmLjjVkdVlepiwv3DkMKWOxv5JuS2AqIHAIhAI1+389qxLLMCZ1nZgcbXv3u5QExHPozuAvt1MVA0IK8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35114},"main":"./dist/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js"}},"_npmUser":{"name":"takinprofit","email":"takinprofit@gmail.com"},"repository":{"url":"git+https://github.com/takinprofit/biome-plugins.git","type":"git"},"_npmVersion":"11.6.2","description":"TanStack Query lint rules ported to Oxlint's JS plugin API. Also compatible with ESLint flat config.","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/oxlint-plugin-query_0.1.0_1771714364647_0.6651213188579839","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"oxlint-plugin-query","version":"0.1.1","type":"module","description":"TanStack Query lint rules ported to Oxlint's JS plugin API. Also compatible with ESLint flat config.","license":"MIT","main":"./dist/index.js","exports":{".":{"import":"./dist/index.js"}},"keywords":["oxlint","eslint","tanstack","query","tanstack-query","react-query","lint"],"repository":{"type":"git","url":"git+https://github.com/takinprofit/biome-plugins.git"},"engines":{"node":">=18.0.0"},"_id":"oxlint-plugin-query@0.1.1","bugs":{"url":"https://github.com/takinprofit/biome-plugins/issues"},"homepage":"https://github.com/takinprofit/biome-plugins#readme","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-d0LGnwXEcMumhXvfq2XndKUM9dWa/epZjg7mn6v2HqRVPNQQU6o9Zr0cEbNtxjVjx/zQ1daN7iMCM+aWzQ0MDA==","shasum":"628a806d4ee21f2adda7b6874a04c7d2e3fd53ee","tarball":"https://registry.npmjs.org/oxlint-plugin-query/-/oxlint-plugin-query-0.1.1.tgz","fileCount":3,"unpackedSize":35114,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCAzwTRhj7EwCdYFlJWaSOqDNyiU1CQtSR6GPKh5lyvJgIhAJGu6y54l67gYWD5JjkreopoUO7C6ypjcEtgpgkiALtr"}]},"_npmUser":{"name":"takinprofit","email":"takinprofit@gmail.com"},"directories":{},"maintainers":[{"name":"takinprofit","email":"takinprofit@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/oxlint-plugin-query_0.1.1_1771715186658_0.8851182782034066"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-21T22:52:44.529Z","modified":"2026-02-21T23:06:26.918Z","0.1.0":"2026-02-21T22:52:44.787Z","0.1.1":"2026-02-21T23:06:26.793Z"},"bugs":{"url":"https://github.com/takinprofit/biome-plugins/issues"},"license":"MIT","homepage":"https://github.com/takinprofit/biome-plugins#readme","keywords":["oxlint","eslint","tanstack","query","tanstack-query","react-query","lint"],"repository":{"type":"git","url":"git+https://github.com/takinprofit/biome-plugins.git"},"description":"TanStack Query lint rules ported to Oxlint's JS plugin API. Also compatible with ESLint flat config.","maintainers":[{"name":"takinprofit","email":"takinprofit@gmail.com"}],"readme":"# oxlint-plugin-query\n\nTanStack Query lint rules ported to [Oxlint's JS plugin API](https://oxc.rs/docs/guide/usage/linter/plugins). Also works with ESLint flat config via the bundled `eslintCompatPlugin` wrapper.\n\nSupports **TanStack Query v5.x** (`@tanstack/react-query`, `@tanstack/solid-query`, `@tanstack/vue-query`).\n\n## Requirements\n\n- Oxlint `>= 1.0.0` (requires `jsPlugins` support)\n- Node.js `>= 18`\n\n## Installation\n\n```sh\nnpm add -D oxlint-plugin-query\n# or\nbun add -d oxlint-plugin-query\n```\n\n## Usage with Oxlint\n\nAdd the plugin to `jsPlugins` and enable the rules you want:\n\n```json\n// .oxlintrc.json\n{\n  \"jsPlugins\": [\"./node_modules/oxlint-plugin-query/dist/index.js\"],\n  \"rules\": {\n    \"oxlint-plugin-query/exhaustive-deps\": \"error\",\n    \"oxlint-plugin-query/no-rest-destructuring\": \"warn\",\n    \"oxlint-plugin-query/stable-query-client\": \"error\",\n    \"oxlint-plugin-query/no-unstable-deps\": \"error\",\n    \"oxlint-plugin-query/infinite-query-property-order\": \"error\",\n    \"oxlint-plugin-query/mutation-property-order\": \"error\"\n  }\n}\n```\n\n## Usage with ESLint\n\n```js\n// eslint.config.mjs\nimport queryPlugin from \"oxlint-plugin-query/dist/index.js\";\n\nexport default [\n  {\n    plugins: { query: queryPlugin },\n    rules: queryPlugin.configs.recommended.rules,\n  },\n];\n```\n\n## Rules\n\nThe **Recommended** column shows the severity used in `plugin.configs.recommended`.\n\n| Rule | Description | Recommended |\n|---|---|---|\n| `exhaustive-deps` | All external variables used in `queryFn` must be listed in `queryKey` | error |\n| `no-rest-destructuring` | Object rest destructuring of query results causes excessive re-renders | warn |\n| `stable-query-client` | `QueryClient` must be stable across renders | error |\n| `no-unstable-deps` | Query key arrays must not contain unstable object references | error |\n| `infinite-query-property-order` | Enforces correct property ordering in `useInfiniteQuery` calls | error |\n| `mutation-property-order` | Enforces correct property ordering in `useMutation` calls | error |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}