Skip to content

Commit ea01674

Browse files
chore: enforce vue block order in pre-commit
1 parent 0801778 commit ea01674

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

lint-staged.config.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
1+
const vueBlockOrderRule =
2+
"vue/block-order: ['error', {'order': ['docs', 'script', 'template', 'i18n', 'style']}]"
3+
14
export default {
25
'./**/*.js': (stagedFiles) => formatAndEslint(stagedFiles),
36

4-
'./**/*.{ts,tsx,vue,mts}': (stagedFiles) => [
7+
'./**/*.{ts,tsx,mts}': (stagedFiles) => [
58
...formatAndEslint(stagedFiles),
69
'pnpm typecheck'
7-
]
10+
],
11+
12+
'./**/*.vue': (stagedFiles) => [
13+
runVueBlockOrder(stagedFiles),
14+
...formatAndEslint(stagedFiles)
15+
].filter(Boolean)
816
}
917

1018
function formatAndEslint(fileNames) {
@@ -13,3 +21,9 @@ function formatAndEslint(fileNames) {
1321
`pnpm exec prettier --cache --write ${fileNames.join(' ')}`
1422
]
1523
}
24+
25+
function runVueBlockOrder(fileNames) {
26+
if (fileNames.length === 0) return null
27+
const quotedFiles = fileNames.map((file) => `"${file}"`).join(' ')
28+
return `pnpm exec eslint --fix --rule "${vueBlockOrderRule}" ${quotedFiles}`
29+
}

0 commit comments

Comments
 (0)