From ad5e86c97f25d823159d5aa6c06317a890afca69 Mon Sep 17 00:00:00 2001 From: JohnDoe6345789 Date: Mon, 29 Dec 2025 22:09:36 +0000 Subject: [PATCH] feat: add Prettier and ESLint configuration files, update scripts, and enhance permissions --- .claude/settings.local.json | 4 +++- frontends/nextjs/.prettierignore | 8 ++++++++ frontends/nextjs/.prettierrc.json | 10 ++++++++++ frontends/nextjs/.vscode/settings.json | 15 +++++++++++++++ frontends/nextjs/bun.lock | 2 +- frontends/nextjs/eslint.config.js | 5 +++++ frontends/nextjs/package.json | 5 +++++ 7 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 frontends/nextjs/.prettierignore create mode 100644 frontends/nextjs/.prettierrc.json create mode 100644 frontends/nextjs/.vscode/settings.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json index df5217e22..64d83ceb2 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -14,7 +14,9 @@ "Bash(git log:*)", "Bash(cat:*)", "Bash(xargs git rm:*)", - "Bash(bun add:*)" + "Bash(bun add:*)", + "Bash(bun install:*)", + "Bash(test -f:*)" ] } } diff --git a/frontends/nextjs/.prettierignore b/frontends/nextjs/.prettierignore new file mode 100644 index 000000000..b4a088311 --- /dev/null +++ b/frontends/nextjs/.prettierignore @@ -0,0 +1,8 @@ +node_modules +.next +dist +build +coverage +*.min.js +*.d.ts +**/DbalIntegrationUtils.ts diff --git a/frontends/nextjs/.prettierrc.json b/frontends/nextjs/.prettierrc.json new file mode 100644 index 000000000..5fec5c0a6 --- /dev/null +++ b/frontends/nextjs/.prettierrc.json @@ -0,0 +1,10 @@ +{ + "semi": false, + "singleQuote": true, + "tabWidth": 2, + "useTabs": false, + "trailingComma": "es5", + "printWidth": 100, + "arrowParens": "avoid", + "endOfLine": "lf" +} diff --git a/frontends/nextjs/.vscode/settings.json b/frontends/nextjs/.vscode/settings.json new file mode 100644 index 000000000..05be6ffe3 --- /dev/null +++ b/frontends/nextjs/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "typescript.tsdk": "node_modules/typescript/lib", + "typescript.enablePromptUseWorkspaceTsdk": true +} diff --git a/frontends/nextjs/bun.lock b/frontends/nextjs/bun.lock index 2ceb4a2c0..0047eb6f1 100644 --- a/frontends/nextjs/bun.lock +++ b/frontends/nextjs/bun.lock @@ -63,7 +63,7 @@ "eslint-plugin-simple-import-sort": "^12.1.1", "globals": "^16.5.0", "jsdom": "^27.3.0", - "prettier": "^3.7.4", + "prettier": "^3.4.2", "prisma": "^7.2.0", "sass": "^1.97.1", "typescript": "~5.9.3", diff --git a/frontends/nextjs/eslint.config.js b/frontends/nextjs/eslint.config.js index 77bf89531..7b12bd51c 100644 --- a/frontends/nextjs/eslint.config.js +++ b/frontends/nextjs/eslint.config.js @@ -2,6 +2,7 @@ import js from '@eslint/js' import globals from 'globals' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' +import simpleImportSort from 'eslint-plugin-simple-import-sort' import tseslint from 'typescript-eslint' import atomicDesignRules from './eslint-plugins/atomic-design-rules.js' @@ -22,6 +23,7 @@ export default tseslint.config( 'react-hooks': reactHooks, 'react-refresh': reactRefresh, 'atomic-design': atomicDesignRules, + 'simple-import-sort': simpleImportSort, }, rules: { ...reactHooks.configs.recommended.rules, @@ -44,6 +46,9 @@ export default tseslint.config( 'no-var': 'error', // Atomic design rules 'atomic-design/no-upward-imports': 'error', + // Import sorting + 'simple-import-sort/imports': 'warn', + 'simple-import-sort/exports': 'warn', }, }, ) diff --git a/frontends/nextjs/package.json b/frontends/nextjs/package.json index 25c91821e..8c2f08800 100644 --- a/frontends/nextjs/package.json +++ b/frontends/nextjs/package.json @@ -9,8 +9,11 @@ "start": "next start", "kill": "fuser -k 3000/tcp", "typecheck": "tsc --noEmit", + "typecheck:strict": "tsc --noEmit --strict", "lint": "eslint .", "lint:fix": "eslint . --fix", + "format": "prettier --write \"src/**/*.{ts,tsx}\"", + "format:check": "prettier --check \"src/**/*.{ts,tsx}\"", "preview": "next start", "dev:vite": "vite", "build:vite": "tsc -b --noCheck && vite build", @@ -119,8 +122,10 @@ "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.26", + "eslint-plugin-simple-import-sort": "^12.1.1", "globals": "^16.5.0", "jsdom": "^27.3.0", + "prettier": "^3.4.2", "prisma": "^7.2.0", "sass": "^1.97.1", "typescript": "~5.9.3",