From 595ea3ccf214ddc353da51d4fe2b80da4efc4f3f Mon Sep 17 00:00:00 2001 From: KazariEX Date: Thu, 28 Aug 2025 01:23:36 +0800 Subject: [PATCH 1/2] fix(define-macros-order): export enum declarations and statements with `declare` modifier --- lib/rules/define-macros-order.js | 9 +++++++++ tests/lib/rules/define-macros-order.js | 2 ++ 2 files changed, 11 insertions(+) diff --git a/lib/rules/define-macros-order.js b/lib/rules/define-macros-order.js index 0bdd5f212..bd49b7707 100644 --- a/lib/rules/define-macros-order.js +++ b/lib/rules/define-macros-order.js @@ -33,6 +33,13 @@ function inScriptSetup(scriptSetup, node) { ) } +/** + * @param {ASTNode} node + */ +function isDeclareStatement(node) { + return 'declare' in node && node.declare === true +} + /** * @param {ASTNode} node */ @@ -53,6 +60,7 @@ function isUseStrictStatement(node) { function getTargetStatementPosition(scriptSetup, program) { const skipStatements = new Set([ 'ImportDeclaration', + 'TSEnumDeclaration', 'TSModuleDeclaration', 'TSInterfaceDeclaration', 'TSTypeAliasDeclaration', @@ -65,6 +73,7 @@ function getTargetStatementPosition(scriptSetup, program) { if ( inScriptSetup(scriptSetup, item) && !skipStatements.has(item.type) && + !isDeclareStatement(item) && !isUseStrictStatement(item) ) { return index diff --git a/tests/lib/rules/define-macros-order.js b/tests/lib/rules/define-macros-order.js index 0a3e274fd..087952c86 100644 --- a/tests/lib/rules/define-macros-order.js +++ b/tests/lib/rules/define-macros-order.js @@ -128,6 +128,8 @@ tester.run('define-macros-order', rule, { import { bar } from 'foo' declare global {} declare namespace Namespace {} + declare const foo: string + declare function bar(): void export interface Props { msg?: string labels?: string[] From 2fc75e9c0017045f7e91306734fd8c1bf5a505d0 Mon Sep 17 00:00:00 2001 From: Flo Edelmann Date: Wed, 27 Aug 2025 22:11:45 +0200 Subject: [PATCH 2/2] Add changeset --- .changeset/five-roses-peel.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/five-roses-peel.md diff --git a/.changeset/five-roses-peel.md b/.changeset/five-roses-peel.md new file mode 100644 index 000000000..59d09503d --- /dev/null +++ b/.changeset/five-roses-peel.md @@ -0,0 +1,5 @@ +--- +"eslint-plugin-vue": patch +--- + +Changed `vue/define-macros-order` to ignore enum declarations and `declare` statements