chore: enforce vue block order in pre-commit

This commit is contained in:
bymyself
2025-09-19 21:40:44 -07:00
parent 0801778f60
commit ed9e8a2144

View File

@@ -1,10 +1,19 @@
/* eslint-disable @typescript-eslint/no-floating-promises */
const vueBlockOrderRule =
"vue/block-order: ['error', {'order': ['docs', 'script', 'template', 'i18n', 'style']}]"
export default {
'./**/*.js': (stagedFiles) => formatAndEslint(stagedFiles),
'./**/*.{ts,tsx,vue,mts}': (stagedFiles) => [
'./**/*.{ts,tsx,mts}': (stagedFiles) => [
...formatAndEslint(stagedFiles),
'pnpm typecheck'
]
],
'./**/*.vue': (stagedFiles) => [
runVueBlockOrder(stagedFiles),
...formatAndEslint(stagedFiles)
].filter(Boolean)
}
function formatAndEslint(fileNames) {
@@ -13,3 +22,9 @@ function formatAndEslint(fileNames) {
`pnpm exec prettier --cache --write ${fileNames.join(' ')}`
]
}
function runVueBlockOrder(fileNames) {
if (fileNames.length === 0) return null
const quotedFiles = fileNames.map((file) => `"${file}"`).join(' ')
return `pnpm exec eslint --fix --rule "${vueBlockOrderRule}" ${quotedFiles}`
}