From 77c6c36e3de3b81b66841434b95a99f411d3e688 Mon Sep 17 00:00:00 2001 From: Luke Vella Date: Sat, 9 Nov 2024 14:37:13 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Add=20linting=20and=20prettier?= =?UTF-8?q?=20to=20more=20places?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/landing/src/middleware.ts | 2 +- apps/web/declarations/next-auth.d.ts | 2 +- apps/web/sentry.server.config.ts | 1 - .../settings/profile/delete-account-dialog.tsx | 3 +-- .../app/[locale]/poll/[urlId]/duplicate-dialog.tsx | 3 +-- .../app/[locale]/poll/[urlId]/edit-details/page.tsx | 7 ++----- .../app/[locale]/poll/[urlId]/edit-settings/page.tsx | 7 ++----- apps/web/src/app/api/logout/route.ts | 2 +- apps/web/src/app/api/storage/[...key]/route.ts | 2 +- apps/web/src/app/global-error.tsx | 8 ++++++-- apps/web/src/components/add-to-calendar-button.tsx | 11 ++--------- apps/web/src/components/create-poll.tsx | 2 +- apps/web/src/components/participant-dropdown.tsx | 2 +- apps/web/src/components/pay-wall-dialog.tsx | 9 ++------- apps/web/src/components/poll-context.tsx | 5 ++--- .../poll/manage-poll/finalize-poll-dialog.tsx | 3 +-- apps/web/tests/create-delete-poll.spec.ts | 2 +- apps/web/tests/edit-options.spec.ts | 2 +- packages/billing/.eslintrc.js | 4 +--- packages/billing/package.json | 4 +++- packages/database/package.json | 3 ++- packages/emails/.eslintrc.js | 4 +--- packages/emails/package.json | 1 + packages/emails/src/components/styled-components.tsx | 5 +++-- packages/emails/src/templates/new-comment.tsx | 4 +--- packages/posthog/package.json | 5 +++++ packages/posthog/src/next/middleware.ts | 3 ++- packages/ui/package.json | 3 ++- packages/ui/src/avatar.tsx | 2 +- packages/ui/src/flex.tsx | 7 +++++-- packages/ui/src/form.tsx | 11 ++--------- packages/ui/src/hooks/use-toast.ts | 2 +- packages/ui/src/icon.tsx | 2 +- packages/ui/src/toast.tsx | 2 +- packages/utils/.eslintrc.js | 2 ++ packages/utils/package.json | 6 ++++-- 36 files changed, 65 insertions(+), 78 deletions(-) create mode 100644 packages/utils/.eslintrc.js diff --git a/apps/landing/src/middleware.ts b/apps/landing/src/middleware.ts index febaa8ced..29d13aa01 100644 --- a/apps/landing/src/middleware.ts +++ b/apps/landing/src/middleware.ts @@ -1,6 +1,6 @@ import { supportedLngs } from "@rallly/languages"; import languageParser from "accept-language-parser"; -import type { NextRequest} from "next/server"; +import type { NextRequest } from "next/server"; import { NextResponse } from "next/server"; export async function getLocaleFromHeader(req: NextRequest) { diff --git a/apps/web/declarations/next-auth.d.ts b/apps/web/declarations/next-auth.d.ts index 746d9abfc..06c09e2be 100644 --- a/apps/web/declarations/next-auth.d.ts +++ b/apps/web/declarations/next-auth.d.ts @@ -3,7 +3,7 @@ import type { TimeFormat } from "@rallly/database"; import { extend } from "lodash"; import type { DefaultSession, DefaultUser } from "next-auth"; import NextAuth from "next-auth"; -import type { DefaultJWT} from "next-auth/jwt"; +import type { DefaultJWT } from "next-auth/jwt"; import { JWT } from "next-auth/jwt"; declare module "next-auth" { diff --git a/apps/web/sentry.server.config.ts b/apps/web/sentry.server.config.ts index 8564be4b7..7b634bca9 100644 --- a/apps/web/sentry.server.config.ts +++ b/apps/web/sentry.server.config.ts @@ -16,5 +16,4 @@ Sentry.init({ // Uncomment the line below to enable Spotlight (https://spotlightjs.com) // spotlight: process.env.NODE_ENV === 'development', - }); diff --git a/apps/web/src/app/[locale]/(admin)/settings/profile/delete-account-dialog.tsx b/apps/web/src/app/[locale]/(admin)/settings/profile/delete-account-dialog.tsx index e28062cce..b6f1ac699 100644 --- a/apps/web/src/app/[locale]/(admin)/settings/profile/delete-account-dialog.tsx +++ b/apps/web/src/app/[locale]/(admin)/settings/profile/delete-account-dialog.tsx @@ -1,8 +1,7 @@ "use client"; import { usePostHog } from "@rallly/posthog/client"; import { Button } from "@rallly/ui/button"; -import type { - DialogProps} from "@rallly/ui/dialog"; +import type { DialogProps } from "@rallly/ui/dialog"; import { Dialog, DialogClose, diff --git a/apps/web/src/app/[locale]/poll/[urlId]/duplicate-dialog.tsx b/apps/web/src/app/[locale]/poll/[urlId]/duplicate-dialog.tsx index 36957e243..f09bb2c07 100644 --- a/apps/web/src/app/[locale]/poll/[urlId]/duplicate-dialog.tsx +++ b/apps/web/src/app/[locale]/poll/[urlId]/duplicate-dialog.tsx @@ -1,8 +1,7 @@ "use client"; import { usePostHog } from "@rallly/posthog/client"; import { Button } from "@rallly/ui/button"; -import type { - DialogProps} from "@rallly/ui/dialog"; +import type { DialogProps } from "@rallly/ui/dialog"; import { Dialog, DialogClose, diff --git a/apps/web/src/app/[locale]/poll/[urlId]/edit-details/page.tsx b/apps/web/src/app/[locale]/poll/[urlId]/edit-details/page.tsx index 7f1a3a4f2..1a68aab4c 100644 --- a/apps/web/src/app/[locale]/poll/[urlId]/edit-details/page.tsx +++ b/apps/web/src/app/[locale]/poll/[urlId]/edit-details/page.tsx @@ -13,11 +13,8 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; import { useForm } from "react-hook-form"; -import type { - PollDetailsData} from "@/components/forms/poll-details-form"; -import { - PollDetailsForm, -} from "@/components/forms/poll-details-form"; +import type { PollDetailsData } from "@/components/forms/poll-details-form"; +import { PollDetailsForm } from "@/components/forms/poll-details-form"; import { useUpdatePollMutation } from "@/components/poll/mutations"; import { usePoll } from "@/components/poll-context"; import { Trans } from "@/components/trans"; diff --git a/apps/web/src/app/[locale]/poll/[urlId]/edit-settings/page.tsx b/apps/web/src/app/[locale]/poll/[urlId]/edit-settings/page.tsx index 63e51d9c8..9840ec8b9 100644 --- a/apps/web/src/app/[locale]/poll/[urlId]/edit-settings/page.tsx +++ b/apps/web/src/app/[locale]/poll/[urlId]/edit-settings/page.tsx @@ -6,11 +6,8 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; import { useForm } from "react-hook-form"; -import type { - PollSettingsFormData} from "@/components/forms/poll-settings"; -import { - PollSettingsForm -} from "@/components/forms/poll-settings"; +import type { PollSettingsFormData } from "@/components/forms/poll-settings"; +import { PollSettingsForm } from "@/components/forms/poll-settings"; import { useUpdatePollMutation } from "@/components/poll/mutations"; import { Trans } from "@/components/trans"; import { usePoll } from "@/contexts/poll"; diff --git a/apps/web/src/app/api/logout/route.ts b/apps/web/src/app/api/logout/route.ts index 53a89bac0..9a9c007ac 100644 --- a/apps/web/src/app/api/logout/route.ts +++ b/apps/web/src/app/api/logout/route.ts @@ -1,4 +1,4 @@ -import type { NextRequest} from "next/server"; +import type { NextRequest } from "next/server"; import { NextResponse } from "next/server"; import { resetUser } from "@/app/guest"; diff --git a/apps/web/src/app/api/storage/[...key]/route.ts b/apps/web/src/app/api/storage/[...key]/route.ts index 956899d19..3206acac7 100644 --- a/apps/web/src/app/api/storage/[...key]/route.ts +++ b/apps/web/src/app/api/storage/[...key]/route.ts @@ -1,5 +1,5 @@ import { GetObjectCommand } from "@aws-sdk/client-s3"; -import type { NextRequest} from "next/server"; +import type { NextRequest } from "next/server"; import { NextResponse } from "next/server"; import { env } from "@/env"; diff --git a/apps/web/src/app/global-error.tsx b/apps/web/src/app/global-error.tsx index 9bda5feef..9388e06e0 100644 --- a/apps/web/src/app/global-error.tsx +++ b/apps/web/src/app/global-error.tsx @@ -4,7 +4,11 @@ import * as Sentry from "@sentry/nextjs"; import NextError from "next/error"; import { useEffect } from "react"; -export default function GlobalError({ error }: { error: Error & { digest?: string } }) { +export default function GlobalError({ + error, +}: { + error: Error & { digest?: string }; +}) { useEffect(() => { Sentry.captureException(error); }, [error]); @@ -20,4 +24,4 @@ export default function GlobalError({ error }: { error: Error & { digest?: strin ); -} \ No newline at end of file +} diff --git a/apps/web/src/components/add-to-calendar-button.tsx b/apps/web/src/components/add-to-calendar-button.tsx index d83bf9e8c..1cae26ce6 100644 --- a/apps/web/src/components/add-to-calendar-button.tsx +++ b/apps/web/src/components/add-to-calendar-button.tsx @@ -9,15 +9,8 @@ import { DropdownMenuTrigger, } from "@rallly/ui/dropdown-menu"; import { Icon } from "@rallly/ui/icon"; -import type { - CalendarEvent} from "calendar-link"; -import { - google, - ics, - office365, - outlook, - yahoo, -} from "calendar-link"; +import type { CalendarEvent } from "calendar-link"; +import { google, ics, office365, outlook, yahoo } from "calendar-link"; import { DownloadIcon, PlusIcon } from "lucide-react"; import Image from "next/image"; diff --git a/apps/web/src/components/create-poll.tsx b/apps/web/src/components/create-poll.tsx index 909417273..80e0b24f1 100644 --- a/apps/web/src/components/create-poll.tsx +++ b/apps/web/src/components/create-poll.tsx @@ -21,7 +21,7 @@ import { useUser } from "@/components/user-provider"; import { trpc } from "@/trpc/client"; import { setCookie } from "@/utils/cookies"; -import type { NewEventData} from "./forms"; +import type { NewEventData } from "./forms"; import { PollDetailsForm, PollOptionsForm } from "./forms"; const required = (v: T | undefined): T => { diff --git a/apps/web/src/components/participant-dropdown.tsx b/apps/web/src/components/participant-dropdown.tsx index e7b3ffe13..a894a22e8 100644 --- a/apps/web/src/components/participant-dropdown.tsx +++ b/apps/web/src/components/participant-dropdown.tsx @@ -31,7 +31,7 @@ import { Input } from "@rallly/ui/input"; import { PencilIcon, TagIcon, TrashIcon } from "lucide-react"; import { useTranslation } from "next-i18next"; import React from "react"; -import type { SubmitHandler} from "react-hook-form"; +import type { SubmitHandler } from "react-hook-form"; import { useForm } from "react-hook-form"; import { useMount } from "react-use"; import { z } from "zod"; diff --git a/apps/web/src/components/pay-wall-dialog.tsx b/apps/web/src/components/pay-wall-dialog.tsx index 484014851..da55c5f2c 100644 --- a/apps/web/src/components/pay-wall-dialog.tsx +++ b/apps/web/src/components/pay-wall-dialog.tsx @@ -2,13 +2,8 @@ import { pricingData } from "@rallly/billing/pricing"; import { Badge } from "@rallly/ui/badge"; -import type { - DialogProps} from "@rallly/ui/dialog"; -import { - Dialog, - DialogContent, - useDialog, -} from "@rallly/ui/dialog"; +import type { DialogProps } from "@rallly/ui/dialog"; +import { Dialog, DialogContent, useDialog } from "@rallly/ui/dialog"; import { RadioGroup, RadioGroupItem } from "@rallly/ui/radio-group"; import { m } from "framer-motion"; import { CheckIcon } from "lucide-react"; diff --git a/apps/web/src/components/poll-context.tsx b/apps/web/src/components/poll-context.tsx index 8042c4e40..d754873aa 100644 --- a/apps/web/src/components/poll-context.tsx +++ b/apps/web/src/components/poll-context.tsx @@ -8,10 +8,9 @@ import React from "react"; import type { GetPollApiResponse, Vote } from "@/trpc/client/types"; import type { ParsedDateOption, - ParsedTimeSlotOption} from "@/utils/date-time-utils"; -import { - getDuration + ParsedTimeSlotOption, } from "@/utils/date-time-utils"; +import { getDuration } from "@/utils/date-time-utils"; import { useDayjs } from "@/utils/dayjs"; import ErrorPage from "./error-page"; diff --git a/apps/web/src/components/poll/manage-poll/finalize-poll-dialog.tsx b/apps/web/src/components/poll/manage-poll/finalize-poll-dialog.tsx index 2237ffdad..0bad3c681 100644 --- a/apps/web/src/components/poll/manage-poll/finalize-poll-dialog.tsx +++ b/apps/web/src/components/poll/manage-poll/finalize-poll-dialog.tsx @@ -1,7 +1,6 @@ import { cn } from "@rallly/ui"; import { Button } from "@rallly/ui/button"; -import type { - DialogProps} from "@rallly/ui/dialog"; +import type { DialogProps } from "@rallly/ui/dialog"; import { Dialog, DialogClose, diff --git a/apps/web/tests/create-delete-poll.spec.ts b/apps/web/tests/create-delete-poll.spec.ts index 294a0c5b8..f29b715fb 100644 --- a/apps/web/tests/create-delete-poll.spec.ts +++ b/apps/web/tests/create-delete-poll.spec.ts @@ -1,4 +1,4 @@ -import type { Page} from "@playwright/test"; +import type { Page } from "@playwright/test"; import { expect, test } from "@playwright/test"; import type { MailServer } from "smtp-tester"; import smtpTester from "smtp-tester"; diff --git a/apps/web/tests/edit-options.spec.ts b/apps/web/tests/edit-options.spec.ts index 018702597..7e3058bfd 100644 --- a/apps/web/tests/edit-options.spec.ts +++ b/apps/web/tests/edit-options.spec.ts @@ -1,4 +1,4 @@ -import type { Page} from "@playwright/test"; +import type { Page } from "@playwright/test"; import { expect, test } from "@playwright/test"; import type { MailServer } from "smtp-tester"; import smtpTester from "smtp-tester"; diff --git a/packages/billing/.eslintrc.js b/packages/billing/.eslintrc.js index 3d9be6e61..a3b5a656d 100644 --- a/packages/billing/.eslintrc.js +++ b/packages/billing/.eslintrc.js @@ -1,4 +1,2 @@ /** @type {import("eslint").Linter.Config} */ -module.exports = { - ...require("@rallly/eslint-config")(__dirname), -}; +module.exports = require("@rallly/eslint-config/preset")(__dirname); diff --git a/packages/billing/package.json b/packages/billing/package.json index 4eb9f9b4d..234e25928 100644 --- a/packages/billing/package.json +++ b/packages/billing/package.json @@ -10,7 +10,9 @@ }, "scripts": { "normalize-subscription-metadata": "dotenv -e ../../.env -- tsx ./src/scripts/normalize-metadata.ts", - "type-check": "tsc --pretty --noEmit" + "type-check": "tsc --pretty --noEmit", + "prettier": "prettier --write .", + "lint": "eslint ./src" }, "dependencies": { "@radix-ui/react-radio-group": "^1.2.0", diff --git a/packages/database/package.json b/packages/database/package.json index fcf7a6043..48eac8a50 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -8,7 +8,8 @@ "db:deploy": "prisma migrate deploy", "db:migrate": "prisma migrate dev", "db:seed": "tsx prisma/seed.ts", - "type-check": "tsc --pretty --noEmit" + "type-check": "tsc --pretty --noEmit", + "prettier": "prettier --write ." }, "exports": "./index.ts", "devDependencies": { diff --git a/packages/emails/.eslintrc.js b/packages/emails/.eslintrc.js index 4c5998cec..a3b5a656d 100644 --- a/packages/emails/.eslintrc.js +++ b/packages/emails/.eslintrc.js @@ -1,4 +1,2 @@ /** @type {import("eslint").Linter.Config} */ -module.exports = { - ...require("@rallly/eslint-config/preset")(__dirname), -}; +module.exports = require("@rallly/eslint-config/preset")(__dirname); diff --git a/packages/emails/package.json b/packages/emails/package.json index 07d19a54b..5c29d16d5 100644 --- a/packages/emails/package.json +++ b/packages/emails/package.json @@ -6,6 +6,7 @@ "dev": "email dev --port 3333 --dir ./src/previews", "lint": "eslint ./src", "type-check": "tsc --pretty --noEmit", + "prettier": "prettier --write .", "i18n:scan": "i18next-scanner --config i18next-scanner.config.js" }, "exports": { diff --git a/packages/emails/src/components/styled-components.tsx b/packages/emails/src/components/styled-components.tsx index fda938aa8..620941602 100644 --- a/packages/emails/src/components/styled-components.tsx +++ b/packages/emails/src/components/styled-components.tsx @@ -1,13 +1,14 @@ import type { LinkProps, SectionProps, - TextProps} from "@react-email/components"; + TextProps, +} from "@react-email/components"; import { Button as UnstyledButton, Heading as UnstyledHeading, Link as UnstyledLink, Section as UnstyledSection, - Text as UnstyledText + Text as UnstyledText, } from "@react-email/components"; import type { EmailContext } from "../types"; diff --git a/packages/emails/src/templates/new-comment.tsx b/packages/emails/src/templates/new-comment.tsx index 97ff4a8dd..cfa7107e2 100644 --- a/packages/emails/src/templates/new-comment.tsx +++ b/packages/emails/src/templates/new-comment.tsx @@ -1,8 +1,6 @@ import { Trans } from "react-i18next/TransWithoutContext"; -import type { - NotificationBaseProps, -} from "../components/notification-email"; +import type { NotificationBaseProps } from "../components/notification-email"; import NotificationEmail from "../components/notification-email"; import { Heading, Text } from "../components/styled-components"; import type { EmailContext } from "../types"; diff --git a/packages/posthog/package.json b/packages/posthog/package.json index 520ce1159..eacf0bcdd 100644 --- a/packages/posthog/package.json +++ b/packages/posthog/package.json @@ -7,6 +7,11 @@ "./client": "./src/client/index.ts", "./next/middleware": "./src/next/middleware.ts" }, + "scripts": { + "lint": "eslint ./src", + "type-check": "tsc --noEmit", + "prettier": "prettier --write ." + }, "dependencies": { "posthog-js": "^1.178.0", "posthog-node": "^4.2.1" diff --git a/packages/posthog/src/next/middleware.ts b/packages/posthog/src/next/middleware.ts index 14a3a7d9a..5d19f553d 100644 --- a/packages/posthog/src/next/middleware.ts +++ b/packages/posthog/src/next/middleware.ts @@ -1,4 +1,5 @@ -import { NextResponse } from "next/server"; +import type { NextResponse } from "next/server"; + import { POSTHOG_BOOTSTAP_DATA_COOKIE_NAME } from "../constants"; const posthogApiKey = process.env.NEXT_PUBLIC_POSTHOG_API_KEY; diff --git a/packages/ui/package.json b/packages/ui/package.json index 19e8e9a5b..786c143e3 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -7,7 +7,8 @@ "scripts": { "ui:add": "npx shadcn-ui@latest add", "lint": "eslint .", - "type-check": "tsc --noEmit" + "type-check": "tsc --noEmit", + "prettier": "prettier --write ." }, "exports": { ".": "./src/lib/utils.ts", diff --git a/packages/ui/src/avatar.tsx b/packages/ui/src/avatar.tsx index 12460d690..839aa75ea 100644 --- a/packages/ui/src/avatar.tsx +++ b/packages/ui/src/avatar.tsx @@ -81,4 +81,4 @@ const AvatarFallback = React.forwardRef< }); AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName; -export { Avatar, AvatarFallback,AvatarImage }; +export { Avatar, AvatarFallback, AvatarImage }; diff --git a/packages/ui/src/flex.tsx b/packages/ui/src/flex.tsx index b3875cd62..b242263bd 100644 --- a/packages/ui/src/flex.tsx +++ b/packages/ui/src/flex.tsx @@ -1,9 +1,12 @@ import { Slot } from "@radix-ui/react-slot"; -import type {VariantProps } from "class-variance-authority"; +import type { VariantProps } from "class-variance-authority"; import { cva } from "class-variance-authority"; import * as React from "react"; -import type { ComponentPropsWithout, RemovedProps } from "./helpers/component-props"; +import type { + ComponentPropsWithout, + RemovedProps, +} from "./helpers/component-props"; import { cn } from "./lib/utils"; type FlexElement = React.ElementRef<"div">; diff --git a/packages/ui/src/form.tsx b/packages/ui/src/form.tsx index e2a655d66..0a6135643 100644 --- a/packages/ui/src/form.tsx +++ b/packages/ui/src/form.tsx @@ -1,15 +1,8 @@ import type * as LabelPrimitive from "@radix-ui/react-label"; import { Slot } from "@radix-ui/react-slot"; import * as React from "react"; -import type { - ControllerProps, - FieldPath, - FieldValues} from "react-hook-form"; -import { - Controller, - FormProvider, - useFormContext, -} from "react-hook-form"; +import type { ControllerProps, FieldPath, FieldValues } from "react-hook-form"; +import { Controller, FormProvider, useFormContext } from "react-hook-form"; import { Label } from "./label"; import { cn } from "./lib/utils"; diff --git a/packages/ui/src/hooks/use-toast.ts b/packages/ui/src/hooks/use-toast.ts index 6a8115203..05718279e 100644 --- a/packages/ui/src/hooks/use-toast.ts +++ b/packages/ui/src/hooks/use-toast.ts @@ -186,4 +186,4 @@ function useToast() { }; } -export { toast,useToast }; +export { toast, useToast }; diff --git a/packages/ui/src/icon.tsx b/packages/ui/src/icon.tsx index 580856a23..0950738c4 100644 --- a/packages/ui/src/icon.tsx +++ b/packages/ui/src/icon.tsx @@ -1,6 +1,6 @@ "use client"; import { Slot } from "@radix-ui/react-slot"; -import type {VariantProps } from "class-variance-authority"; +import type { VariantProps } from "class-variance-authority"; import { cva } from "class-variance-authority"; import { cn } from "./lib/utils"; diff --git a/packages/ui/src/toast.tsx b/packages/ui/src/toast.tsx index e2eca6a13..b63df3c43 100644 --- a/packages/ui/src/toast.tsx +++ b/packages/ui/src/toast.tsx @@ -1,5 +1,5 @@ import * as ToastPrimitives from "@radix-ui/react-toast"; -import { type VariantProps,cva } from "class-variance-authority"; +import { type VariantProps, cva } from "class-variance-authority"; import { X } from "lucide-react"; import * as React from "react"; diff --git a/packages/utils/.eslintrc.js b/packages/utils/.eslintrc.js new file mode 100644 index 000000000..a3b5a656d --- /dev/null +++ b/packages/utils/.eslintrc.js @@ -0,0 +1,2 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = require("@rallly/eslint-config/preset")(__dirname); diff --git a/packages/utils/package.json b/packages/utils/package.json index a27f1609b..99db939fb 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,10 +1,12 @@ { "name": "@rallly/utils", - "type": "module", "version": "0.0.0", "private": true, "scripts": { - "test:unit": "vitest run" + "test:unit": "vitest run", + "prettier": "prettier --write .", + "lint": "eslint ./src", + "type-check": "tsc --noEmit" }, "exports": { "./*": "./src/*.ts"