diff --git a/server/.prettierignore b/server/.prettierignore new file mode 100644 index 0000000..4badf74 --- /dev/null +++ b/server/.prettierignore @@ -0,0 +1,3 @@ +src-backend/ +dist/ +node_modules/ diff --git a/server/eslint.config.js b/server/eslint.config.js index 092408a..96fdf6e 100644 --- a/server/eslint.config.js +++ b/server/eslint.config.js @@ -3,11 +3,12 @@ import globals from 'globals' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' import tseslint from 'typescript-eslint' +import eslintConfigPrettier from 'eslint-config-prettier' export default tseslint.config( { ignores: ['dist'] }, { - extends: [js.configs.recommended, ...tseslint.configs.recommended], + extends: [js.configs.recommended, ...tseslint.configs.recommended, eslintConfigPrettier], files: ['**/*.{ts,tsx}'], languageOptions: { ecmaVersion: 2020, diff --git a/server/package.json b/server/package.json index d956392..794ea75 100644 --- a/server/package.json +++ b/server/package.json @@ -11,8 +11,11 @@ "build:js": "tsc && vite build", "build:rust": "cd src-backend && cargo build --release", "lint": "npm run lint:js && npm run lint:rust", - "lint:js": "eslint src/", - "lint:rust": "cd src-backend && cargo check" + "lint:js": "eslint src/ && prettier . --check", + "lint:rust": "cd src-backend && cargo check", + "lint:fix": "npm run lint:fix:rust && npm run lint:fix:js", + "lint:fix:js": "eslint src/ --fix && prettier . --write", + "lint:fix:rust": "cd src-backend && cargo fix" }, "dependencies": { "@react-three/drei": "^10.4.2", @@ -32,9 +35,11 @@ "concurrently": "^9.2.0", "cross-env": "^7.0.3", "eslint": "^9.30.0", + "eslint-config-prettier": "^10.1.5", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", "globals": "^16.3.0", + "prettier": "^3.6.2", "typescript": "^5.8.3", "typescript-eslint": "^8.35.1", "vite": "^6.3.5", diff --git a/server/pnpm-lock.yaml b/server/pnpm-lock.yaml index 31df79c..fa28a79 100644 --- a/server/pnpm-lock.yaml +++ b/server/pnpm-lock.yaml @@ -54,6 +54,9 @@ importers: eslint: specifier: ^9.30.0 version: 9.30.0(jiti@2.4.2) + eslint-config-prettier: + specifier: ^10.1.5 + version: 10.1.5(eslint@9.30.0(jiti@2.4.2)) eslint-plugin-react-hooks: specifier: ^5.2.0 version: 5.2.0(eslint@9.30.0(jiti@2.4.2)) @@ -63,6 +66,9 @@ importers: globals: specifier: ^16.3.0 version: 16.3.0 + prettier: + specifier: ^3.6.2 + version: 3.6.2 typescript: specifier: ^5.8.3 version: 5.8.3 @@ -1020,6 +1026,12 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + eslint-config-prettier@10.1.5: + resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + eslint-plugin-react-hooks@5.2.0: resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} @@ -2772,6 +2784,10 @@ snapshots: escape-string-regexp@4.0.0: {} + eslint-config-prettier@10.1.5(eslint@9.30.0(jiti@2.4.2)): + dependencies: + eslint: 9.30.0(jiti@2.4.2) + eslint-plugin-react-hooks@5.2.0(eslint@9.30.0(jiti@2.4.2)): dependencies: eslint: 9.30.0(jiti@2.4.2) diff --git a/server/prettier.config.js b/server/prettier.config.js new file mode 100644 index 0000000..f50b949 --- /dev/null +++ b/server/prettier.config.js @@ -0,0 +1,12 @@ +/** + * @see https://prettier.io/docs/configuration + * @type {import("prettier").Config} + */ +const config = { + trailingComma: "es5", + tabWidth: 4, + semi: false, + singleQuote: true, +}; + +export default config;