infra-cli
Version:
46 lines (36 loc) • 1.21 kB
JavaScript
const spawn = require('cross-spawn')
function addHuskyConfig (targetDir, configs) {
const huskyInitProc = spawn.sync('npx', ['husky-init'], { stdio: 'inherit', cwd: targetDir })
if (huskyInitProc.status !== 0) {
console.error('`npx husky-init` failed')
}
if (configs.includes('commitLint')) {
const commitMsgProc = spawn.sync(
'npx',
['husky', 'add', '.husky/commit-msg', 'npx --no-install commitlint --edit "$1"'],
{ stdio: 'inherit', cwd: targetDir }
)
if (commitMsgProc.status !== 0) {
console.error('`commit-msg` failed')
}
}
if (configs.includes('eslint')) {
const lintStagedProc = spawn.sync('npx', ['husky', 'add', '.husky/pre-commit', 'npm run lint-staged'], {
stdio: 'inherit',
cwd: targetDir
})
if (lintStagedProc.status !== 0) {
console.error('`lint-staged` failed')
}
}
if (configs.includes('unitTesting')) {
const unitTestingProc = spawn.sync('npx', ['husky', 'add', '.husky/pre-commit', 'npm run unit:test'], {
stdio: 'inherit',
cwd: targetDir
})
if (unitTestingProc.status !== 0) {
console.error('`unit:test` failed')
}
}
}
module.exports = addHuskyConfig