Skip to content

Commit 8dc3cd9

Browse files
authored
fix(define-macros-order): update rule to support interface/type export in <script lang="ts" setup/> (#2040)
1 parent cc1b8d9 commit 8dc3cd9

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

lib/rules/define-macros-order.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ function getTargetStatementPosition(scriptSetup, program) {
4545
'TSInterfaceDeclaration',
4646
'TSTypeAliasDeclaration',
4747
'DebuggerStatement',
48-
'EmptyStatement'
48+
'EmptyStatement',
49+
'ExportNamedDeclaration'
4950
])
5051

5152
for (const [index, item] of program.body.entries()) {

tests/lib/rules/define-macros-order.js

+22
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,28 @@ tester.run('define-macros-order', rule, {
106106
</script>
107107
`,
108108
options: optionsEmitsFirst
109+
},
110+
{
111+
filename: 'test.vue',
112+
code: `
113+
<script setup lang="ts">
114+
import { bar } from 'foo'
115+
export interface Props {
116+
msg?: string
117+
labels?: string[]
118+
}
119+
defineEmits(['update:test'])
120+
const props = withDefaults(defineProps<Props>(), {
121+
msg: 'hello',
122+
labels: () => ['one', 'two']
123+
})
124+
console.log('test')
125+
</script>
126+
`,
127+
options: optionsEmitsFirst,
128+
parserOptions: {
129+
parser: require.resolve('@typescript-eslint/parser')
130+
}
109131
}
110132
],
111133
invalid: [

0 commit comments

Comments
 (0)