Socket
Socket
Sign inDemoInstall

@tanstack/eslint-plugin-query

Package Overview
Dependencies
Maintainers
2
Versions
120
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tanstack/eslint-plugin-query - npm Package Compare versions

Comparing version 5.52.3 to 5.53.0

8

dist/esm/rules/exhaustive-deps/exhaustive-deps.rule.js

@@ -63,3 +63,2 @@ import { ESLintUtils, AST_NODE_TYPES } from "@typescript-eslint/utils";

}
const queryKeyValue = queryKeyNode;
const externalRefs = ASTUtils.getExternalRefs({

@@ -78,3 +77,3 @@ scopeManager,

);
const existingKeys = ASTUtils.getNestedIdentifiers(queryKeyValue).map(
const existingKeys = ASTUtils.getNestedIdentifiers(queryKeyNode).map(
(identifier) => ASTUtils.mapKeyNodeToText(identifier, context.sourceCode)

@@ -96,3 +95,4 @@ );

).join(", ");
const existingWithMissing = context.sourceCode.getText(queryKeyValue).replace(/\]$/, `, ${missingAsText}]`);
const queryKeyValue = context.sourceCode.getText(queryKeyNode);
const existingWithMissing = queryKeyValue === "[]" ? `[${missingAsText}]` : queryKeyValue.replace(/\]$/, `, ${missingAsText}]`);
const suggestions = [];

@@ -104,3 +104,3 @@ if (queryKeyNode.type === AST_NODE_TYPES.ArrayExpression) {

fix(fixer) {
return fixer.replaceText(queryKeyValue, existingWithMissing);
return fixer.replaceText(queryKeyNode, existingWithMissing);
}

@@ -107,0 +107,0 @@ });

@@ -36,4 +36,4 @@ import { AST_NODE_TYPES, TSESLint, TSESTree } from '@typescript-eslint/utils';

}): TSESTree.Expression | null;
getClosestVariableDeclarator(node: TSESTree.Node): TSESTree.LetOrConstOrVarDeclarator | undefined;
getClosestVariableDeclarator(node: TSESTree.Node): TSESTree.VariableDeclaratorDefiniteAssignment | TSESTree.VariableDeclaratorMaybeInit | undefined;
getNestedReturnStatements(node: TSESTree.Node): Array<TSESTree.ReturnStatement>;
};
{
"name": "@tanstack/eslint-plugin-query",
"version": "5.52.3",
"version": "5.53.0",
"description": "ESLint plugin for TanStack Query",

@@ -40,12 +40,12 @@ "author": "Eliya Cohen",

"dependencies": {
"@typescript-eslint/utils": "8.0.0-alpha.30"
"@typescript-eslint/utils": "^8.3.0"
},
"devDependencies": {
"@typescript-eslint/rule-tester": "8.0.0-alpha.30",
"eslint": "^9.5.0"
"@typescript-eslint/rule-tester": "^8.3.0",
"eslint": "^9.9.1"
},
"peerDependencies": {
"eslint": "^8 || ^9"
"eslint": "^8.57.0 || ^9.0.0"
},
"scripts": {}
}

@@ -5,6 +5,3 @@ import { RuleTester } from '@typescript-eslint/rule-tester'

const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
settings: {},
})
const ruleTester = new RuleTester()

@@ -150,3 +147,3 @@ ruleTester.run('exhaustive-deps', rule, {

}
const useFoo = (num: number) =>

@@ -166,3 +163,3 @@ useQuery({

}
const useFoo = (num: number) =>

@@ -182,3 +179,3 @@ useQuery({

}
const useFoo = (num: number) =>

@@ -198,3 +195,3 @@ useQuery({

}
const useFoo = (num: number) =>

@@ -214,3 +211,3 @@ useQuery({

}
const useFoo = (num: number) =>

@@ -230,3 +227,3 @@ useQuery({

}
const useFoo = (obj: { num: number }) =>

@@ -263,3 +260,3 @@ useQuery({

const state = { foo: 'foo', bar: 'bar' }
useQuery({

@@ -418,3 +415,3 @@ queryKey: ['state', state],

const fetch = true
function Component({ id }) {

@@ -727,3 +724,3 @@ useQuery({

const state = { foo: 'foo', bar: 'bar' }
useQuery({

@@ -736,2 +733,15 @@ queryKey: ['state', state.foo],

{
suggestions: [
{
messageId: 'fixTo',
output: normalizeIndent`
const state = { foo: 'foo', bar: 'bar' }
useQuery({
queryKey: ['state', state.foo, state.bar],
queryFn: () => Promise.resolve({ foo: state.foo, bar: state.bar })
})
`,
},
],
messageId: 'missingDeps',

@@ -746,3 +756,3 @@ data: { deps: 'state.bar' },

const id = 1;
useQuery({

@@ -757,2 +767,17 @@ queryKey: [],

{
suggestions: [
{
messageId: 'fixTo',
output: normalizeIndent`
const id = 1;
useQuery({
queryKey: [id],
queryFn() {
Promise.resolve(id)
}
})
`,
},
],
messageId: 'missingDeps',

@@ -768,3 +793,3 @@ data: { deps: 'id' },

const fetch = true
function Component({ id }) {

@@ -779,2 +804,18 @@ useQuery({

{
suggestions: [
{
messageId: 'fixTo',
output: normalizeIndent`
import { useQuery, skipToken } from "@tanstack/react-query";
const fetch = true
function Component({ id }) {
useQuery({
queryKey: [id],
queryFn: fetch ? () => Promise.resolve(id) : skipToken
})
}
`,
},
],
messageId: 'missingDeps',

@@ -781,0 +822,0 @@ data: { deps: 'id' },

@@ -5,6 +5,3 @@ import { RuleTester } from '@typescript-eslint/rule-tester'

const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
settings: {},
})
const ruleTester = new RuleTester()

@@ -11,0 +8,0 @@ ruleTester.run('no-rest-destructuring', rule, {

@@ -8,6 +8,3 @@ import { RuleTester } from '@typescript-eslint/rule-tester'

const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
settings: {},
})
const ruleTester = new RuleTester()

@@ -41,3 +38,3 @@ interface TestCase {

import { ${queryHook} } from "@tanstack/react-query";
function Component() {

@@ -62,3 +59,3 @@ const { refetch } = ${queryHook}({ queryFn: (value: string) => value });

import { useMutation } from "@tanstack/react-query";
function Component() {

@@ -83,3 +80,3 @@ const mutation = useMutation({ mutationFn: (value: string) => value });

import { ${queryHook} } from "@tanstack/react-query";
function Component() {

@@ -86,0 +83,0 @@ const query = ${queryHook}({ queryFn: (value: string) => value });

@@ -5,6 +5,3 @@ import { RuleTester } from '@typescript-eslint/rule-tester'

const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
settings: {},
})
const ruleTester = new RuleTester()

@@ -39,3 +36,3 @@ ruleTester.run('stable-query-client', rule, {

import { QueryClient } from "@tanstack/react-query";
function Component() {

@@ -51,3 +48,3 @@ const [queryClient] = React.useMemo(() => new QueryClient(), []);

import { QueryClient } from "@tanstack/react-query";
function Component() {

@@ -54,0 +51,0 @@ const [queryClient] = useAnything(() => new QueryClient());

@@ -88,3 +88,2 @@ import { AST_NODE_TYPES, ESLintUtils } from '@typescript-eslint/utils'

const queryKeyValue = queryKeyNode
const externalRefs = ASTUtils.getExternalRefs({

@@ -105,3 +104,3 @@ scopeManager,

const existingKeys = ASTUtils.getNestedIdentifiers(queryKeyValue).map(
const existingKeys = ASTUtils.getNestedIdentifiers(queryKeyNode).map(
(identifier) =>

@@ -138,6 +137,9 @@ ASTUtils.mapKeyNodeToText(identifier, context.sourceCode),

const existingWithMissing = context.sourceCode
.getText(queryKeyValue)
.replace(/\]$/, `, ${missingAsText}]`)
const queryKeyValue = context.sourceCode.getText(queryKeyNode)
const existingWithMissing =
queryKeyValue === '[]'
? `[${missingAsText}]`
: queryKeyValue.replace(/\]$/, `, ${missingAsText}]`)
const suggestions: TSESLint.ReportSuggestionArray<string> = []

@@ -150,3 +152,3 @@

fix(fixer) {
return fixer.replaceText(queryKeyValue, existingWithMissing)
return fixer.replaceText(queryKeyNode, existingWithMissing)
},

@@ -153,0 +155,0 @@ })

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc