chore(husky): implement husky commit hooks to install, lint and format before commit

This commit is contained in:
Amruth Pillai 2022-03-08 08:11:47 +01:00
parent 54fd97b5ec
commit e52edaa552
No known key found for this signature in database
GPG Key ID: E3C57DF9B80855AD
7 changed files with 30 additions and 26 deletions

View File

@ -1,15 +1,8 @@
{ {
"root": true, "root": true,
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"extends": [ "extends": ["plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"],
"plugin:@typescript-eslint/recommended", "plugins": ["@typescript-eslint/eslint-plugin", "simple-import-sort", "unused-imports"],
"plugin:prettier/recommended"
],
"plugins": [
"@typescript-eslint/eslint-plugin",
"simple-import-sort",
"unused-imports"
],
"rules": { "rules": {
// TypeScript ESLint // TypeScript ESLint
"@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/no-unused-vars": "off",
@ -35,12 +28,10 @@
}, },
"overrides": [ "overrides": [
{ {
"files": [ "files": ["*.js"],
"*.js"
],
"rules": { "rules": {
"@typescript-eslint/no-var-requires": "off" "@typescript-eslint/no-var-requires": "off"
} }
} }
] ]
} }

6
.husky/pre-commit Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
pnpm install
pnpm run lint
pnpm run format

4
.prettierignore Normal file
View File

@ -0,0 +1,4 @@
dist
.next
__ENV.js
node_modules

View File

@ -12,8 +12,5 @@
"i18n-ally.localesPaths": ["client/public/locales"], "i18n-ally.localesPaths": ["client/public/locales"],
"i18n-ally.namespace": true, "i18n-ally.namespace": true,
"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}", "i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}",
"i18n-ally.sortKeys": true, "i18n-ally.sortKeys": true
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
}
} }

View File

@ -1,14 +1,8 @@
{ {
"extends": [ "extends": ["../.eslintrc.json", "next/core-web-vitals"],
"../.eslintrc.json", "ignorePatterns": [".next", "__ENV.js"],
"next/core-web-vitals"
],
"ignorePatterns": [
".next",
"__ENV.js"
],
"rules": { "rules": {
"@next/next/no-img-element": "off", "@next/next/no-img-element": "off",
"@next/next/no-sync-scripts": "off" "@next/next/no-sync-scripts": "off"
} }
} }

View File

@ -13,6 +13,9 @@
} }
}, },
"scripts": { "scripts": {
"prepare": "husky install",
"lint": "eslint --fix --ext .js,.ts,.tsx .",
"format": "prettier --write \"./**/*.{js,ts,tsx,json}\"",
"dev:schema": "pnpm -F schema dev", "dev:schema": "pnpm -F schema dev",
"dev:server": "pnpm -F server start:dev", "dev:server": "pnpm -F server start:dev",
"dev:client": "pnpm -F client dev", "dev:client": "pnpm -F client dev",
@ -40,6 +43,7 @@
"eslint-plugin-prettier": "^4.0.0", "eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-simple-import-sort": "^7.0.0", "eslint-plugin-simple-import-sort": "^7.0.0",
"eslint-plugin-unused-imports": "^2.0.0", "eslint-plugin-unused-imports": "^2.0.0",
"husky": "^7.0.4",
"prettier": "^2.5.1", "prettier": "^2.5.1",
"typescript": "^4.5.5" "typescript": "^4.5.5"
} }

View File

@ -16,6 +16,7 @@ importers:
eslint-plugin-prettier: ^4.0.0 eslint-plugin-prettier: ^4.0.0
eslint-plugin-simple-import-sort: ^7.0.0 eslint-plugin-simple-import-sort: ^7.0.0
eslint-plugin-unused-imports: ^2.0.0 eslint-plugin-unused-imports: ^2.0.0
husky: ^7.0.4
prettier: ^2.5.1 prettier: ^2.5.1
typescript: ^4.5.5 typescript: ^4.5.5
dependencies: dependencies:
@ -32,6 +33,7 @@ importers:
eslint-plugin-prettier: 4.0.0_f3d13a703a9c1079e3d1af6044603beb eslint-plugin-prettier: 4.0.0_f3d13a703a9c1079e3d1af6044603beb
eslint-plugin-simple-import-sort: 7.0.0_eslint@8.10.0 eslint-plugin-simple-import-sort: 7.0.0_eslint@8.10.0
eslint-plugin-unused-imports: 2.0.0_5048693f84252cfc01b1f5d975a3323d eslint-plugin-unused-imports: 2.0.0_5048693f84252cfc01b1f5d975a3323d
husky: 7.0.4
prettier: 2.5.1 prettier: 2.5.1
typescript: 4.5.5 typescript: 4.5.5
@ -4888,6 +4890,12 @@ packages:
engines: {node: '>=8.12.0'} engines: {node: '>=8.12.0'}
dev: true dev: true
/husky/7.0.4:
resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==}
engines: {node: '>=12'}
hasBin: true
dev: true
/i18next-fs-backend/1.1.4: /i18next-fs-backend/1.1.4:
resolution: {integrity: sha512-/MfAGMP0jHonV966uFf9PkWWuDjPYLIcsipnSO3NxpNtAgRUKLTwvm85fEmsF6hGeu0zbZiCQ3W74jwO6K9uXA==} resolution: {integrity: sha512-/MfAGMP0jHonV966uFf9PkWWuDjPYLIcsipnSO3NxpNtAgRUKLTwvm85fEmsF6hGeu0zbZiCQ3W74jwO6K9uXA==}
dev: false dev: false