From 91aaddda5f4792b8ad01133a6eb87192932ac1dd Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Fri, 15 Nov 2024 10:37:01 -0500 Subject: [PATCH] Switch to biome for fomatting --- .prettierignore | 2 - app/(auth)/actions.ts | 4 +- app/(auth)/auth.config.ts | 10 ++-- app/(auth)/register/page.tsx | 2 +- biome.json | 42 +++++++++++++++ package.json | 4 +- pnpm-lock.yaml | 101 +++++++++++++++++++++++++++++++---- prettier.config.cjs | 9 ---- 8 files changed, 144 insertions(+), 30 deletions(-) delete mode 100644 .prettierignore create mode 100644 biome.json delete mode 100644 prettier.config.cjs diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 4be8cf9..0000000 --- a/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -pnpm-lock.yaml -lib/drizzle \ No newline at end of file diff --git a/app/(auth)/actions.ts b/app/(auth)/actions.ts index 058e8af..ae2f903 100644 --- a/app/(auth)/actions.ts +++ b/app/(auth)/actions.ts @@ -6,6 +6,8 @@ import { createUser, getUser } from '@/lib/db/queries'; import { signIn } from './auth'; + + const authFormSchema = z.object({ email: z.string().email(), password: z.string().min(6), @@ -61,7 +63,7 @@ export const register = async ( password: formData.get('password'), }); - let [user] = await getUser(validatedData.email); + const [user] = await getUser(validatedData.email); if (user) { return { status: 'user_exists' } as RegisterActionState; diff --git a/app/(auth)/auth.config.ts b/app/(auth)/auth.config.ts index 1a910a3..cf1ecdd 100644 --- a/app/(auth)/auth.config.ts +++ b/app/(auth)/auth.config.ts @@ -1,4 +1,4 @@ -import { NextAuthConfig } from 'next-auth'; +import type { NextAuthConfig } from 'next-auth'; export const authConfig = { pages: { @@ -11,10 +11,10 @@ export const authConfig = { ], callbacks: { authorized({ auth, request: { nextUrl } }) { - let isLoggedIn = !!auth?.user; - let isOnChat = nextUrl.pathname.startsWith('/'); - let isOnRegister = nextUrl.pathname.startsWith('/register'); - let isOnLogin = nextUrl.pathname.startsWith('/login'); + const isLoggedIn = !!auth?.user; + const isOnChat = nextUrl.pathname.startsWith('/'); + const isOnRegister = nextUrl.pathname.startsWith('/register'); + const isOnLogin = nextUrl.pathname.startsWith('/login'); if (isLoggedIn && (isOnLogin || isOnRegister)) { return Response.redirect(new URL('/', nextUrl as unknown as URL)); diff --git a/app/(auth)/register/page.tsx b/app/(auth)/register/page.tsx index c95f49c..df82583 100644 --- a/app/(auth)/register/page.tsx +++ b/app/(auth)/register/page.tsx @@ -8,7 +8,7 @@ import { toast } from 'sonner'; import { AuthForm } from '@/components/auth-form'; import { SubmitButton } from '@/components/submit-button'; -import { register, RegisterActionState } from '../actions'; +import { register, type RegisterActionState } from '../actions'; export default function Page() { const router = useRouter(); diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..73edd88 --- /dev/null +++ b/biome.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false }, + "files": { + "ignoreUnknown": false, + "ignore": [ + "**/pnpm-lock.yaml", + "lib/db/migrations", + "node_modules", + ".next", + "public", + ".vercel" + ] + }, + "formatter": { + "enabled": true, + "useEditorconfig": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineEnding": "lf", + "lineWidth": 80, + "attributePosition": "auto", + "bracketSpacing": true, + "ignore": ["**/pnpm-lock.yaml", "lib/db/drizzle"] + }, + "organizeImports": { "enabled": false }, + "linter": { "enabled": false }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "es5", + "semicolons": "always", + "arrowParentheses": "always", + "bracketSameLine": false, + "quoteStyle": "single", + "attributePosition": "auto", + "bracketSpacing": true + } + } +} diff --git a/package.json b/package.json index b943a59..26b2a7f 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "start": "next start", "lint": "next lint", "lint:fix": "next lint --fix", - "format": "prettier --write .", + "format": "biome format --write", "db:generate": "drizzle-kit generate", "db:migrate": "npx tsx lib/db/migrate.ts", "db:studio": "drizzle-kit studio" @@ -66,6 +66,7 @@ "zod": "^3.23.8" }, "devDependencies": { + "@biomejs/biome": "1.9.4", "@tailwindcss/typography": "^0.5.15", "@types/d3-scale": "^4.0.8", "@types/node": "^22.8.6", @@ -80,7 +81,6 @@ "eslint-plugin-import": "^2.31.0", "eslint-plugin-tailwindcss": "^3.17.5", "postcss": "^8", - "prettier": "^3.3.3", "tailwindcss": "^3.4.1", "tsx": "^4.19.1", "typescript": "^5" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4854c39..4da0565 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,6 +159,9 @@ importers: specifier: ^3.23.8 version: 3.23.8 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@tailwindcss/typography': specifier: ^0.5.15 version: 0.5.15(tailwindcss@3.4.14) @@ -201,9 +204,6 @@ importers: postcss: specifier: ^8 version: 8.4.47 - prettier: - specifier: ^3.3.3 - version: 3.3.3 tailwindcss: specifier: ^3.4.1 version: 3.4.14 @@ -274,6 +274,59 @@ packages: nodemailer: optional: true + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} @@ -3013,11 +3066,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} - hasBin: true - pretty-format@3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} @@ -3645,6 +3693,41 @@ snapshots: preact: 10.11.3 preact-render-to-string: 5.2.3(preact@10.11.3) + '@biomejs/biome@1.9.4': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 + + '@biomejs/cli-darwin-arm64@1.9.4': + optional: true + + '@biomejs/cli-darwin-x64@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64@1.9.4': + optional: true + + '@biomejs/cli-linux-x64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-x64@1.9.4': + optional: true + + '@biomejs/cli-win32-arm64@1.9.4': + optional: true + + '@biomejs/cli-win32-x64@1.9.4': + optional: true + '@drizzle-team/brocli@0.10.2': {} '@emnapi/runtime@1.3.1': @@ -6510,8 +6593,6 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.3.3: {} - pretty-format@3.8.0: {} prop-types@15.8.1: diff --git a/prettier.config.cjs b/prettier.config.cjs deleted file mode 100644 index db1f545..0000000 --- a/prettier.config.cjs +++ /dev/null @@ -1,9 +0,0 @@ -/** @type {import('prettier').Config} */ -module.exports = { - endOfLine: 'lf', - semi: true, - useTabs: false, - singleQuote: true, - tabWidth: 2, - trailingComma: 'es5', -};