diff --git a/.changeset/shy-wasps-pull.md b/.changeset/shy-wasps-pull.md new file mode 100644 index 0000000000..24011af557 --- /dev/null +++ b/.changeset/shy-wasps-pull.md @@ -0,0 +1,5 @@ +--- +'@tanstack/eslint-plugin-query': patch +--- + +avoid typescript import in no-void-query-fn rule diff --git a/packages/eslint-plugin-query/src/rules/no-void-query-fn/no-void-query-fn.rule.ts b/packages/eslint-plugin-query/src/rules/no-void-query-fn/no-void-query-fn.rule.ts index 9c202e621a..5a8708efc0 100644 --- a/packages/eslint-plugin-query/src/rules/no-void-query-fn/no-void-query-fn.rule.ts +++ b/packages/eslint-plugin-query/src/rules/no-void-query-fn/no-void-query-fn.rule.ts @@ -1,10 +1,15 @@ import { ESLintUtils } from '@typescript-eslint/utils' -import ts from 'typescript' import { ASTUtils } from '../../utils/ast-utils' import { detectTanstackQueryImports } from '../../utils/detect-react-query-imports' import { getDocsUrl } from '../../utils/get-docs-url' +import type { ParserServicesWithTypeInformation } from '@typescript-eslint/utils' import type { ExtraRuleDocs } from '../../types' +const TypeFlags = { + Void: 16384, + Undefined: 32768, +} as const + export const name = 'no-void-query-fn' const createRule = ESLintUtils.RuleCreator(getDocsUrl) @@ -69,7 +74,11 @@ export const rule = createRule({ }), }) -function isIllegalReturn(checker: ts.TypeChecker, type: ts.Type): boolean { +type Program = ParserServicesWithTypeInformation['program'] +type TypeChecker = ReturnType +type Type = ReturnType + +function isIllegalReturn(checker: TypeChecker, type: Type): boolean { const awaited = checker.getAwaitedType(type) if (!awaited) return false @@ -78,7 +87,5 @@ function isIllegalReturn(checker: ts.TypeChecker, type: ts.Type): boolean { return awaited.types.some((t) => isIllegalReturn(checker, t)) } - return awaited.flags & (ts.TypeFlags.Void | ts.TypeFlags.Undefined) - ? true - : false + return awaited.flags & (TypeFlags.Void | TypeFlags.Undefined) ? true : false }