From ee640da9e79b689fb1cc45ed0045c90c22f7cf9f Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Tue, 9 Jul 2024 17:11:45 +0200 Subject: [PATCH] Add eslint-plugin-security and pre-commit hooks. (#5) * feat: add eslint-plugin-security * chore: relocate devDependencies to the appropriate section in package.json * feat: add husky library for pre-commit hooks * feat: add husky library for pre-commit hooks * chore: improve prettierrc config --- .eslintrc.cjs | 1 + .husky/pre-commit | 1 + .prettierrc.json | 4 ++-- .vscode/settings.json | 10 +++++++++- package.json | 30 +++++++++++++++++------------- 5 files changed, 30 insertions(+), 16 deletions(-) create mode 100644 .husky/pre-commit diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 1843e62bcf..902ee59d19 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -9,6 +9,7 @@ module.exports = { "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", + "plugin:security/recommended-legacy", "prettier", ], parserOptions: { diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000000..129b71298f --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npm run healthcheck diff --git a/.prettierrc.json b/.prettierrc.json index b355961f7d..15d19325bb 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -5,5 +5,5 @@ "tabWidth": 2, "useTabs": false, "semi": true, - "printWidth": 120 -} \ No newline at end of file + "printWidth": 80 +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 25fa6215fd..104c678edb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,11 @@ { - "typescript.tsdk": "node_modules/typescript/lib" + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "prettier.printWidth": 80, + "prettier.tabWidth": 2, + "prettier.useTabs": false, + "prettier.singleQuote": false, + "prettier.trailingComma": "all", + "prettier.semi": true, + "prettier.bracketSpacing": true } diff --git a/package.json b/package.json index 611c3b9137..c7ba81e435 100644 --- a/package.json +++ b/package.json @@ -6,38 +6,41 @@ "@nextui-org/theme": "2.2.5", "@react-aria/ssr": "3.9.4", "@react-aria/visually-hidden": "3.8.12", + "clsx": "2.1.1", + "framer-motion": "~11.1.1", + "intl-messageformat": "^10.5.0", + "next": "14.2.3", + "next-themes": "^0.2.1", + "react": "18.3.1", + "react-dom": "18.3.1", + "swr": "^2.2.5" + }, + "devDependencies": { "@types/node": "20.5.7", "@types/react": "18.3.3", "@types/react-dom": "18.3.0", "@typescript-eslint/eslint-plugin": "^7.10.0", "@typescript-eslint/parser": "^7.10.0", "autoprefixer": "10.4.19", - "clsx": "2.1.1", "eslint": "^8.56.0", "eslint-config-next": "14.2.1", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react": "^7.23.2", "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-security": "^3.0.1", + "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-unused-imports": "^3.2.0", - "framer-motion": "~11.1.1", - "intl-messageformat": "^10.5.0", - "next": "14.2.3", - "next-themes": "^0.2.1", + "husky": "^9.0.11", + "lint-staged": "^15.2.7", "postcss": "8.4.38", - "react": "18.3.1", - "react-dom": "18.3.1", - "swr": "^2.2.5", "tailwind-variants": "0.1.20", "tailwindcss": "3.4.3", "typescript": "5.0.4" }, - "devDependencies": { - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-simple-import-sort": "^12.1.1" - }, "name": "prowler-next-app", "private": true, "scripts": { @@ -49,7 +52,8 @@ "lint:check": "./node_modules/.bin/eslint ./app", "lint:fix": "eslint . --ext .ts,.tsx -c .eslintrc.cjs --fix", "format:check": "./node_modules/.bin/prettier --check ./app", - "format:write": "./node_modules/.bin/prettier --config .prettierrc.json --write ./app" + "format:write": "./node_modules/.bin/prettier --config .prettierrc.json --write ./app", + "prepare": "husky" }, "version": "0.0.1" }