Skip to content

Commit ed9e8a2

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

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

lint-staged.config.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
1+
/* eslint-disable @typescript-eslint/no-floating-promises */
2+
const vueBlockOrderRule =
3+
"vue/block-order: ['error', {'order': ['docs', 'script', 'template', 'i18n', 'style']}]"
4+
15
export default {
26
'./**/*.js': (stagedFiles) => formatAndEslint(stagedFiles),
37

4-
'./**/*.{ts,tsx,vue,mts}': (stagedFiles) => [
8+
'./**/*.{ts,tsx,mts}': (stagedFiles) => [
59
...formatAndEslint(stagedFiles),
610
'pnpm typecheck'
7-
]
11+
],
12+
13+
'./**/*.vue': (stagedFiles) => [
14+
runVueBlockOrder(stagedFiles),
15+
...formatAndEslint(stagedFiles)
16+
].filter(Boolean)
817
}
918

1019
function formatAndEslint(fileNames) {
@@ -13,3 +22,9 @@ function formatAndEslint(fileNames) {
1322
`pnpm exec prettier --cache --write ${fileNames.join(' ')}`
1423
]
1524
}
25+
26+
function runVueBlockOrder(fileNames) {
27+
if (fileNames.length === 0) return null
28+
const quotedFiles = fileNames.map((file) => `"${file}"`).join(' ')
29+
return `pnpm exec eslint --fix --rule "${vueBlockOrderRule}" ${quotedFiles}`
30+
}

0 commit comments

Comments
 (0)