diff --git a/eslint.config.mjs b/eslint.config.mjs index bb2c0c491044..a522cfde3f4e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -85,15 +85,8 @@ export default tseslint.config( project: [ 'tsconfig.json', 'packages/*/tsconfig.json', - /** - * We are currently in the process of transitioning to nx's out of the box structure and - * so need to manually specify converted packages' tsconfig.build.json and tsconfig.spec.json - * files here for now in addition to the tsconfig.json glob pattern. - * - * TODO(#4665): Clean this up once all packages have been transitioned. - */ - 'packages/scope-manager/tsconfig.build.json', - 'packages/scope-manager/tsconfig.spec.json', + 'packages/*/tsconfig.build.json', + 'packages/*/tsconfig.spec.json', ], tsconfigRootDir: __dirname, warnOnUnsupportedTypeScriptVersion: false, diff --git a/packages/eslint-plugin/tsconfig.json b/packages/eslint-plugin/tsconfig.json index f9259c091c68..e20ba57770ac 100644 --- a/packages/eslint-plugin/tsconfig.json +++ b/packages/eslint-plugin/tsconfig.json @@ -11,7 +11,15 @@ "declarationMap": false, "rootDir": "." }, - "include": ["src", "typings", "tests", "tools", "index.d.ts", "rules.d.ts"], + "include": [ + "src", + "typings", + "tests", + "tools", + "index.d.ts", + "rules.d.ts", + "eslint-recommended-raw.d.ts" + ], "references": [ { "path": "../utils/tsconfig.build.json" }, { "path": "../parser/tsconfig.build.json" }, diff --git a/packages/parser/src/parser.ts b/packages/parser/src/parser.ts index 33c707383dcd..58297dcfc032 100644 --- a/packages/parser/src/parser.ts +++ b/packages/parser/src/parser.ts @@ -3,8 +3,7 @@ import type { ScopeManager, } from '@typescript-eslint/scope-manager'; import { analyze } from '@typescript-eslint/scope-manager'; -import type { Lib, TSESTree } from '@typescript-eslint/types'; -import { ParserOptions } from '@typescript-eslint/types'; +import type { Lib, ParserOptions, TSESTree } from '@typescript-eslint/types'; import type { ParserServices, TSESTreeOptions, diff --git a/packages/rule-tester/tests/RuleTester.test.ts b/packages/rule-tester/tests/RuleTester.test.ts index 9bf1f8f5fd6e..fa80b66c11dd 100644 --- a/packages/rule-tester/tests/RuleTester.test.ts +++ b/packages/rule-tester/tests/RuleTester.test.ts @@ -91,6 +91,7 @@ const EMPTY_PROGRAM: TSESTree.Program = { range: [0, 0], }; // TODO: Fix need for any +// eslint-disable-next-line @typescript-eslint/no-explicit-any runRuleForItemSpy.mockImplementation((_1, _2, testCase: any) => { return { messages: @@ -134,6 +135,7 @@ const NOOP_RULE: RuleModule<'error'> = { function getTestConfigFromCall(): unknown[] { // TODO: Fix need for any + // eslint-disable-next-line @typescript-eslint/no-explicit-any return runRuleForItemSpy.mock.calls.map((c: any) => { return { ...c[2], filename: c[2].filename?.replaceAll('\\', '/') }; }); diff --git a/packages/scope-manager/src/referencer/Referencer.ts b/packages/scope-manager/src/referencer/Referencer.ts index 0189605367c9..8ba81344ca8d 100644 --- a/packages/scope-manager/src/referencer/Referencer.ts +++ b/packages/scope-manager/src/referencer/Referencer.ts @@ -327,7 +327,7 @@ class Referencer extends Visitor { switch (left.type) { case AST_NODE_TYPES.TSAsExpression: // @ts-expect-error Intentional fallthrough - case AST_NODE_TYPES.TSTypeAssertion: + case AST_NODE_TYPES.TSTypeAssertion: // eslint-disable-line no-fallthrough // explicitly visit the type annotation this.visitType(left.typeAnnotation); // intentional fallthrough diff --git a/packages/scope-manager/src/referencer/Visitor.ts b/packages/scope-manager/src/referencer/Visitor.ts index 157be0998853..9f2f807c858a 100644 --- a/packages/scope-manager/src/referencer/Visitor.ts +++ b/packages/scope-manager/src/referencer/Visitor.ts @@ -5,7 +5,8 @@ import type { PatternVisitorOptions, } from './PatternVisitor'; import { PatternVisitor } from './PatternVisitor'; -import { VisitorBase, VisitorOptions } from './VisitorBase'; +import type { VisitorOptions } from './VisitorBase'; +import { VisitorBase } from './VisitorBase'; interface VisitPatternOptions extends PatternVisitorOptions { processRightHandNodes?: boolean; diff --git a/packages/scope-manager/src/referencer/VisitorBase.ts b/packages/scope-manager/src/referencer/VisitorBase.ts index a6ae19be6918..fe1324420b4e 100644 --- a/packages/scope-manager/src/referencer/VisitorBase.ts +++ b/packages/scope-manager/src/referencer/VisitorBase.ts @@ -1,5 +1,6 @@ import type { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/types'; -import { VisitorKeys, visitorKeys } from '@typescript-eslint/visitor-keys'; +import type { VisitorKeys } from '@typescript-eslint/visitor-keys'; +import { visitorKeys } from '@typescript-eslint/visitor-keys'; interface VisitorOptions { childVisitorKeys?: VisitorKeys | null; diff --git a/packages/scope-manager/tests/eslint-scope/es6-destructuring-assignments.test.ts b/packages/scope-manager/tests/eslint-scope/es6-destructuring-assignments.test.ts index 225c240a0c08..618f95537ad5 100644 --- a/packages/scope-manager/tests/eslint-scope/es6-destructuring-assignments.test.ts +++ b/packages/scope-manager/tests/eslint-scope/es6-destructuring-assignments.test.ts @@ -157,8 +157,12 @@ describe('ES6 destructuring assignments', () => { expect(scope.references).toHaveLength(0); expect(scope['implicit'].leftToBeResolved).toHaveLength(2); expect(scope['implicit'].leftToBeResolved[0].identifier.name).toBe('d'); + // TODO: Investigate lint error + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument expectToBeForScope(scope['implicit'].leftToBeResolved[0].from); expect(scope['implicit'].leftToBeResolved[1].identifier.name).toBe('array'); + // TODO: Investigate lint error + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument expectToBeForScope(scope['implicit'].leftToBeResolved[1].from); scope = scopeManager.scopes[2]; @@ -280,10 +284,16 @@ describe('ES6 destructuring assignments', () => { expect(scope.references).toHaveLength(0); expect(scope['implicit'].leftToBeResolved).toHaveLength(3); expect(scope['implicit'].leftToBeResolved[0].identifier.name).toBe('d'); + // TODO: Investigate lint error + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument expectToBeForScope(scope['implicit'].leftToBeResolved[0].from); expect(scope['implicit'].leftToBeResolved[1].identifier.name).toBe('e'); + // TODO: Investigate lint error + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument expectToBeForScope(scope['implicit'].leftToBeResolved[1].from); expect(scope['implicit'].leftToBeResolved[2].identifier.name).toBe('array'); + // TODO: Investigate lint error + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument expectToBeForScope(scope['implicit'].leftToBeResolved[2].from); scope = scopeManager.scopes[2]; diff --git a/packages/scope-manager/tests/test-utils/parse.ts b/packages/scope-manager/tests/test-utils/parse.ts index 5fc5de92d4c0..50a75a98d10b 100644 --- a/packages/scope-manager/tests/test-utils/parse.ts +++ b/packages/scope-manager/tests/test-utils/parse.ts @@ -1,6 +1,7 @@ import * as tseslint from '@typescript-eslint/typescript-estree'; -import { analyze, AnalyzeOptions } from '../../src/analyze'; +import type { AnalyzeOptions } from '../../src/analyze'; +import { analyze } from '../../src/analyze'; type SourceType = AnalyzeOptions['sourceType']; diff --git a/packages/types/tsconfig.build.json b/packages/types/tsconfig.build.json index 831cced61abd..ff0328e8f1b9 100644 --- a/packages/types/tsconfig.build.json +++ b/packages/types/tsconfig.build.json @@ -6,7 +6,8 @@ "emitDeclarationOnly": false, "resolveJsonModule": true }, - "include": ["src", "typings"] + "include": ["src"], + "references": [] } // { diff --git a/packages/types/tsconfig.json b/packages/types/tsconfig.json index af823f306a8c..f17a83b66a70 100644 --- a/packages/types/tsconfig.json +++ b/packages/types/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "outDir": "../../dist/out-tsc/types" }, - "include": ["src", "typings", "tests", "tools"], + "include": ["src", "tools"], "references": [ { "path": "./tsconfig.build.json" diff --git a/packages/typescript-estree/src/convert.ts b/packages/typescript-estree/src/convert.ts index 21857483103e..bccfceb8fbd2 100644 --- a/packages/typescript-estree/src/convert.ts +++ b/packages/typescript-estree/src/convert.ts @@ -602,6 +602,7 @@ export class Converter { if (colonIndex > 0) { const range = getRange(node, this.ast); // TODO: Fix as any usage + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument const result = this.createNode(node as any, { type: AST_NODE_TYPES.JSXNamespacedName, namespace: this.createNode(node, { @@ -1282,9 +1283,11 @@ export class Converter { }); } + /* eslint-disable no-fallthrough */ case SyntaxKind.GetAccessor: // @ts-expect-error Intentionally allowing fallthrough in switch for identical cases case SyntaxKind.SetAccessor: { + /* eslint-enable no-fallthrough */ if ( node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.TypeLiteral