chore: update dependencies and migrate tooling
This commit is contained in:
@@ -23,14 +23,13 @@
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"oven.bun-vscode",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"bradlc.vscode-tailwindcss",
|
||||
"YoavBls.pretty-ts-errors",
|
||||
"usernamehw.errorlens",
|
||||
"Prisma.prisma",
|
||||
"esbenp.prettier-vscode",
|
||||
"dsznajder.es7-react-js-snippets",
|
||||
"csstools.postcss"
|
||||
"csstools.postcss",
|
||||
"biomejs.biome"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
node_modules
|
||||
.next
|
||||
.husky
|
||||
coverage
|
||||
.prettierignore
|
||||
.stylelintignore
|
||||
.eslintignore
|
||||
stories
|
||||
storybook-static
|
||||
*.log
|
||||
playwright-report
|
||||
.nyc_output
|
||||
test-results
|
||||
junit.xml
|
||||
docs
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"useTabs": false,
|
||||
"trailingComma": "all",
|
||||
"semi": false,
|
||||
"tabWidth": 2,
|
||||
"singleQuote": false,
|
||||
"printWidth": 80,
|
||||
"endOfLine": "auto",
|
||||
"arrowParens": "always",
|
||||
"plugins": ["prettier-plugin-tailwindcss"]
|
||||
}
|
||||
Vendored
+2
-10
@@ -1,19 +1,11 @@
|
||||
{
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": "always"
|
||||
},
|
||||
"eslint.useFlatConfig": true,
|
||||
"eslint.format.enable": true,
|
||||
"eslint.run": "onSave",
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
"source.organizeImports.biome": "explicit",
|
||||
"source.fixAll.biome": "explicit"
|
||||
},
|
||||
"[json]": {
|
||||
"editor.defaultFormatter": "vscode.json-language-features"
|
||||
},
|
||||
"[typescriptreact]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"[jsonc]": {
|
||||
"editor.defaultFormatter": "vscode.json-language-features"
|
||||
}
|
||||
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
|
||||
"vcs": {
|
||||
"enabled": true,
|
||||
"clientKind": "git",
|
||||
"useIgnoreFile": true,
|
||||
"defaultBranch": "main"
|
||||
},
|
||||
"files": {
|
||||
"ignoreUnknown": false
|
||||
},
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"formatWithErrors": false,
|
||||
"indentStyle": "space",
|
||||
"indentWidth": 2,
|
||||
"lineEnding": "lf",
|
||||
"lineWidth": 80,
|
||||
"attributePosition": "auto",
|
||||
"bracketSameLine": false,
|
||||
"bracketSpacing": true,
|
||||
"expand": "auto",
|
||||
"useEditorconfig": true,
|
||||
"includes": [
|
||||
"**",
|
||||
"!**/ node_modules",
|
||||
"!**/ .next",
|
||||
"!**/ .husky",
|
||||
"!**/ coverage",
|
||||
"!**/ .prettierignore",
|
||||
"!**/ .stylelintignore",
|
||||
"!**/ .eslintignore",
|
||||
"!**/ stories",
|
||||
"!**/ storybook-static",
|
||||
"!**/ *.log",
|
||||
"!**/ playwright-report",
|
||||
"!**/ .nyc_output",
|
||||
"!**/ test-results",
|
||||
"!**/ junit.xml",
|
||||
"!**/ docs"
|
||||
]
|
||||
},
|
||||
"linter": {
|
||||
"enabled": true,
|
||||
"rules": {
|
||||
"recommended": true
|
||||
}
|
||||
},
|
||||
"javascript": {
|
||||
"formatter": {
|
||||
"jsxQuoteStyle": "double",
|
||||
"quoteProperties": "asNeeded",
|
||||
"trailingCommas": "all",
|
||||
"semicolons": "asNeeded",
|
||||
"arrowParentheses": "always",
|
||||
"bracketSameLine": false,
|
||||
"quoteStyle": "double",
|
||||
"attributePosition": "auto",
|
||||
"bracketSpacing": true
|
||||
}
|
||||
},
|
||||
"html": {
|
||||
"formatter": {
|
||||
"indentScriptAndStyle": false,
|
||||
"selfCloseVoidElements": "always"
|
||||
}
|
||||
},
|
||||
"assist": {
|
||||
"enabled": true,
|
||||
"actions": {
|
||||
"source": {
|
||||
"organizeImports": "on"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
import { FlatCompat } from "@eslint/eslintrc"
|
||||
import eslintPlugin from "@eslint/js"
|
||||
import type { Linter } from "eslint"
|
||||
|
||||
const compat = new FlatCompat()
|
||||
|
||||
const eslintConfig = [
|
||||
{
|
||||
name: "custom/eslint/recommended",
|
||||
files: ["**/*.ts?(x)"],
|
||||
...eslintPlugin.configs.recommended,
|
||||
},
|
||||
]
|
||||
|
||||
const ignoresConfig = [
|
||||
{
|
||||
name: "custom/eslint/ignores",
|
||||
// the ignores option needs to be in a separate configuration object
|
||||
// replaces the .eslintignore file
|
||||
ignores: [
|
||||
".next/",
|
||||
".vscode/",
|
||||
"public/",
|
||||
"src/generated/",
|
||||
"node_modules/",
|
||||
"src/components/ui/",
|
||||
],
|
||||
},
|
||||
] as Linter.Config[]
|
||||
|
||||
export default [
|
||||
...compat.extends(
|
||||
"next/core-web-vitals",
|
||||
"next/typescript",
|
||||
"plugin:import/recommended",
|
||||
"plugin:playwright/recommended",
|
||||
"plugin:prettier/recommended",
|
||||
),
|
||||
...compat.config({
|
||||
rules: {
|
||||
"no-unused-vars": "error",
|
||||
"simple-import-sort/exports": "error",
|
||||
"simple-import-sort/imports": "error",
|
||||
"@typescript-eslint/no-unused-vars": "off",
|
||||
"@typescript-eslint/no-explicit-any": "off",
|
||||
"@typescript-eslint/no-empty-object-type": "off",
|
||||
"@typescript-eslint/no-empty-interface": "off",
|
||||
},
|
||||
plugins: ["simple-import-sort"],
|
||||
globals: { React: true, Prisma: true },
|
||||
settings: {
|
||||
react: {
|
||||
version: "detect",
|
||||
},
|
||||
},
|
||||
}),
|
||||
...eslintConfig,
|
||||
...ignoresConfig,
|
||||
] satisfies Linter.Config[]
|
||||
@@ -3,11 +3,6 @@ import type { NextConfig } from "next"
|
||||
const nextConfig: NextConfig = {
|
||||
/* config options here */
|
||||
|
||||
eslint: {
|
||||
// we have added a lint command to the package.json build script
|
||||
// which is why we disable the default next lint (during builds) here
|
||||
ignoreDuringBuilds: true,
|
||||
},
|
||||
}
|
||||
|
||||
export default nextConfig
|
||||
|
||||
+13
-25
@@ -6,10 +6,9 @@
|
||||
"dev": "next dev --turbopack",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"next-lint": "next lint",
|
||||
"lint": "eslint .",
|
||||
"lint:fix": "eslint . --fix",
|
||||
"format": "prettier --write .",
|
||||
"lint": "biome lint --write",
|
||||
"format": "biome format --write",
|
||||
"check": "biome check --write",
|
||||
"db:push": "bunx prisma db push",
|
||||
"db:migrate": "bunx prisma migrate dev",
|
||||
"db:migrate:reset": "bunx prisma migrate reset",
|
||||
@@ -22,8 +21,8 @@
|
||||
"seed": "bun src/prisma/seed.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@eslint/js": "^9.29.0",
|
||||
"@hookform/resolvers": "^5.1.1",
|
||||
"@base-ui/react": "^1.4.1",
|
||||
"@hookform/resolvers": "^5.2.2",
|
||||
"@prisma/client": "^6.10.1",
|
||||
"@radix-ui/react-checkbox": "^1.3.2",
|
||||
"@radix-ui/react-collapsible": "^1.1.11",
|
||||
@@ -36,36 +35,25 @@
|
||||
"bcryptjs": "^3.0.2",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"lucide-react": "^0.518.0",
|
||||
"next": "15.3.6",
|
||||
"lucide-react": "^1.11.0",
|
||||
"next": "^16.2.4",
|
||||
"next-auth": "^5.0.0-beta.28",
|
||||
"next-themes": "^0.4.6",
|
||||
"papaparse": "^5.5.3",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0",
|
||||
"react-hook-form": "^7.58.1",
|
||||
"sonner": "^2.0.5",
|
||||
"react": "^19.2.5",
|
||||
"react-dom": "^19.2.5",
|
||||
"react-hook-form": "^7.74.0",
|
||||
"sonner": "^2.0.7",
|
||||
"tailwind-merge": "^3.3.1",
|
||||
"use-debounce": "^10.0.6",
|
||||
"zod": "^3.25.67"
|
||||
"zod": "^4.3.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/eslintrc": "^3.3.1",
|
||||
"@biomejs/biome": "2.4.15",
|
||||
"@tailwindcss/postcss": "^4.1.10",
|
||||
"@types/node": "^24.0.3",
|
||||
"@types/react": "^19.1.8",
|
||||
"@types/react-dom": "^19.1.6",
|
||||
"@typescript-eslint/parser": "^8.34.1",
|
||||
"eslint": "^9.29.0",
|
||||
"eslint-config-next": "15.3.4",
|
||||
"eslint-config-prettier": "^10.1.5",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-playwright": "^2.2.0",
|
||||
"eslint-plugin-prettier": "^5.5.0",
|
||||
"eslint-plugin-simple-import-sort": "^12.1.1",
|
||||
"eslint-plugin-unicorn": "^59.0.1",
|
||||
"prettier": "^3.5.3",
|
||||
"prettier-plugin-tailwindcss": "^0.6.13",
|
||||
"prisma": "^6.10.1",
|
||||
"tailwindcss": "^4.1.10",
|
||||
"tw-animate-css": "^1.3.4",
|
||||
|
||||
+3
-2
@@ -15,7 +15,7 @@
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"jsx": "preserve",
|
||||
"jsx": "react-jsx",
|
||||
"incremental": true,
|
||||
"plugins": [
|
||||
{
|
||||
@@ -33,7 +33,8 @@
|
||||
"**/*.ts",
|
||||
"**/*.tsx",
|
||||
".next/types/**/*.ts",
|
||||
"types/**/*.ts"
|
||||
"types/**/*.ts",
|
||||
".next/dev/types/**/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
|
||||
Reference in New Issue
Block a user