Skip to content

Commit 6ce5c80

Browse files
authored
Add support for defineOptions to vue/order-in-components rule (#2160)
1 parent 94e45d4 commit 6ce5c80

File tree

2 files changed

+54
-3
lines changed

2 files changed

+54
-3
lines changed

Diff for: lib/rules/order-in-components.js

+13-3
Original file line numberDiff line numberDiff line change
@@ -334,8 +334,18 @@ module.exports = {
334334
}
335335
}
336336

337-
return utils.executeOnVue(context, (obj) => {
338-
checkOrder(obj.properties)
339-
})
337+
return utils.compositingVisitors(
338+
utils.executeOnVue(context, (obj) => {
339+
checkOrder(obj.properties)
340+
}),
341+
utils.defineScriptSetupVisitor(context, {
342+
onDefineOptionsEnter(node) {
343+
if (node.arguments.length === 0) return
344+
const define = node.arguments[0]
345+
if (define.type !== 'ObjectExpression') return
346+
checkOrder(define.properties)
347+
}
348+
})
349+
)
340350
}
341351
}

Diff for: tests/lib/rules/order-in-components.js

+41
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,19 @@ ruleTester.run('order-in-components', rule, {
165165
new Vue()
166166
`,
167167
parserOptions: { ecmaVersion: 6 }
168+
},
169+
{
170+
filename: 'example.vue',
171+
code: `
172+
<script setup>
173+
defineOptions({
174+
name: 'Foo',
175+
inheritAttrs: true,
176+
})
177+
</script>
178+
`,
179+
parser: require.resolve('vue-eslint-parser'),
180+
parserOptions
168181
}
169182
],
170183

@@ -943,6 +956,34 @@ ruleTester.run('order-in-components', rule, {
943956
line: 5
944957
}
945958
]
959+
},
960+
{
961+
filename: 'example.vue',
962+
code: `
963+
<script setup>
964+
defineOptions({
965+
inheritAttrs: true,
966+
name: 'Foo',
967+
})
968+
</script>
969+
`,
970+
parser: require.resolve('vue-eslint-parser'),
971+
parserOptions,
972+
output: `
973+
<script setup>
974+
defineOptions({
975+
name: 'Foo',
976+
inheritAttrs: true,
977+
})
978+
</script>
979+
`,
980+
errors: [
981+
{
982+
message:
983+
'The "name" property should be above the "inheritAttrs" property on line 4.',
984+
line: 5
985+
}
986+
]
946987
}
947988
]
948989
})

0 commit comments

Comments
 (0)