From 3c937157a3840dd57658d11bfd06d224ac2a828f Mon Sep 17 00:00:00 2001 From: Szydlak Date: Thu, 14 Nov 2024 13:19:47 +0100 Subject: [PATCH] fix(eslint-plugin): report deprecations used in default export fixes #10327 --- .../eslint-plugin/src/rules/no-deprecated.ts | 1 - .../tests/rules/no-deprecated.test.ts | 37 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/packages/eslint-plugin/src/rules/no-deprecated.ts b/packages/eslint-plugin/src/rules/no-deprecated.ts index 6d85d91a3dca..4ee51d4a3835 100644 --- a/packages/eslint-plugin/src/rules/no-deprecated.ts +++ b/packages/eslint-plugin/src/rules/no-deprecated.ts @@ -127,7 +127,6 @@ export default createRule({ while (true) { switch (current.type) { case AST_NODE_TYPES.ExportAllDeclaration: - case AST_NODE_TYPES.ExportDefaultDeclaration: case AST_NODE_TYPES.ExportNamedDeclaration: case AST_NODE_TYPES.ImportDeclaration: return true; diff --git a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts index 9f8648f48ae7..ba4e27555657 100644 --- a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts +++ b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts @@ -100,6 +100,23 @@ ruleTester.run('no-deprecated', rule, { a('b'); `, + ` + function a(value: 'b' | undefined): void; + /** @deprecated */ + function a(value: 'c' | undefined): void; + function a(value: string | undefined): void { + // ... + } + + export default a('b'); + `, + ` + function notDeprecated(): object { + return {}; + } + + export default notDeprecated(); + `, ` import { deprecatedFunctionWithOverloads } from './deprecated'; @@ -2463,5 +2480,25 @@ ruleTester.run('no-deprecated', rule, { }, ], }, + { + code: ` + /** @deprecated */ + function a(): object { + return {}; + } + + export default a(); + `, + errors: [ + { + column: 24, + data: { name: 'a' }, + endColumn: 25, + endLine: 7, + line: 7, + messageId: 'deprecated', + }, + ], + }, ], });