From 34ae2d595d32f1580692cf3cf1169fe0f51c9b63 Mon Sep 17 00:00:00 2001 From: DarrachBarneveld <130994206+DarrachBarneveld@users.noreply.github.com> Date: Wed, 30 Oct 2024 19:57:10 +0000 Subject: [PATCH] Remove unused files after 1 year or if edited by Niall maher and look in development --- cdk/bin/cdk-pipeline-codu.ts | 14 --- cdk/jest.config.js | 8 -- .../editor/extensions/update-youtube.ts | 18 --- hooks/useLocalStorage.ts | 27 ---- hooks/useWindowSize.ts | 38 ------ mdx-components.tsx | 7 -- server/api/router/auth.ts | 7 -- server/trpc/server.ts | 28 ----- server/trpc/trpc.ts | 116 ------------------ utils/editor.ts | 21 ---- utils/trpc.ts | 43 ------- 11 files changed, 327 deletions(-) delete mode 100644 cdk/bin/cdk-pipeline-codu.ts delete mode 100644 cdk/jest.config.js delete mode 100644 components/editor/editor/extensions/update-youtube.ts delete mode 100644 hooks/useLocalStorage.ts delete mode 100644 hooks/useWindowSize.ts delete mode 100644 mdx-components.tsx delete mode 100644 server/api/router/auth.ts delete mode 100644 server/trpc/server.ts delete mode 100644 server/trpc/trpc.ts delete mode 100644 utils/editor.ts delete mode 100644 utils/trpc.ts diff --git a/cdk/bin/cdk-pipeline-codu.ts b/cdk/bin/cdk-pipeline-codu.ts deleted file mode 100644 index ecfe9537..00000000 --- a/cdk/bin/cdk-pipeline-codu.ts +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env node -import "source-map-support/register"; -import * as cdk from "aws-cdk-lib"; -import { PipelineStack } from "../lib/pipeline-stack"; - -const app = new cdk.App(); - -new PipelineStack(app, "CoduPipeline", { - env: { - account: process.env.CDK_DEPLOY_ACCOUNT || process.env.CDK_DEFAULT_ACCOUNT, - region: process.env.CDK_DEPLOY_REGION || process.env.CDK_DEFAULT_REGION, - }, - crossRegionReferences: true, -}); diff --git a/cdk/jest.config.js b/cdk/jest.config.js deleted file mode 100644 index a8f075a5..00000000 --- a/cdk/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - testEnvironment: "node", - roots: ["/test"], - testMatch: ["**/*.test.ts"], - transform: { - "^.+\\.tsx?$": "ts-jest", - }, -}; diff --git a/components/editor/editor/extensions/update-youtube.ts b/components/editor/editor/extensions/update-youtube.ts deleted file mode 100644 index f8513964..00000000 --- a/components/editor/editor/extensions/update-youtube.ts +++ /dev/null @@ -1,18 +0,0 @@ -import Youtube from "@tiptap/extension-youtube"; - -const UpdatedYoutube = Youtube.extend({ - addAttributes() { - return { - ...this.parent?.(), - width: { - default: null, - }, - height: { - default: null, - }, - enableIFrameApi: "true", - }; - }, -}); - -export default UpdatedYoutube; diff --git a/hooks/useLocalStorage.ts b/hooks/useLocalStorage.ts deleted file mode 100644 index 5f2ebeb9..00000000 --- a/hooks/useLocalStorage.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { useEffect, useState } from "react"; - -const useLocalStorage = ( - key: string, - initialValue: T, - // eslint-disable-next-line no-unused-vars -): [T, (value: T) => void] => { - const [storedValue, setStoredValue] = useState(initialValue); - - useEffect(() => { - // Retrieve from localStorage - const item = window.localStorage.getItem(key); - if (item) { - setStoredValue(JSON.parse(item)); - } - }, [key]); - - const setValue = (value: T) => { - // Save state - setStoredValue(value); - // Save to localStorage - window.localStorage.setItem(key, JSON.stringify(value)); - }; - return [storedValue, setValue]; -}; - -export default useLocalStorage; diff --git a/hooks/useWindowSize.ts b/hooks/useWindowSize.ts deleted file mode 100644 index 53a70c09..00000000 --- a/hooks/useWindowSize.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { useEffect, useState } from "react"; - -export default function useWindowSize() { - const [windowSize, setWindowSize] = useState<{ - width: number | undefined; - height: number | undefined; - }>({ - width: undefined, - height: undefined, - }); - - useEffect(() => { - // Handler to call on window resize - function handleResize() { - // Set window width/height to state - setWindowSize({ - width: window.innerWidth, - height: window.innerHeight, - }); - } - - // Add event listener - window.addEventListener("resize", handleResize); - - // Call handler right away so state gets updated with initial window size - handleResize(); - - // Remove event listener on cleanup - return () => window.removeEventListener("resize", handleResize); - }, []); // Empty array ensures that effect is only run on mount - - return { - windowSize, - isMobile: typeof windowSize?.width === "number" && windowSize?.width < 768, - isDesktop: - typeof windowSize?.width === "number" && windowSize?.width >= 768, - }; -} diff --git a/mdx-components.tsx b/mdx-components.tsx deleted file mode 100644 index 9ff72291..00000000 --- a/mdx-components.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import type { MDXComponents } from "mdx/types"; - -export function useMDXComponents(components: MDXComponents): MDXComponents { - return { - ...components, - }; -} diff --git a/server/api/router/auth.ts b/server/api/router/auth.ts deleted file mode 100644 index 2b1057ea..00000000 --- a/server/api/router/auth.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { createTRPCRouter, publicProcedure } from "../trpc"; - -export const authRouter = createTRPCRouter({ - getSession: publicProcedure.query(({ ctx }) => { - return ctx.session; - }), -}); diff --git a/server/trpc/server.ts b/server/trpc/server.ts deleted file mode 100644 index 71bfc5a2..00000000 --- a/server/trpc/server.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { - createTRPCProxyClient, - loggerLink, - unstable_httpBatchStreamLink, -} from "@trpc/client"; -import { headers } from "next/headers"; - -import { type AppRouter } from "@/server/api/router"; -import { getUrl, transformer } from "./shared"; - -export const api = createTRPCProxyClient({ - transformer, - links: [ - loggerLink({ - enabled: (op) => - process.env.NODE_ENV === "development" || - (op.direction === "down" && op.result instanceof Error), - }), - unstable_httpBatchStreamLink({ - url: getUrl(), - headers() { - const heads = new Map(headers()); - heads.set("x-trpc-source", "rsc"); - return Object.fromEntries(heads); - }, - }), - ], -}); diff --git a/server/trpc/trpc.ts b/server/trpc/trpc.ts deleted file mode 100644 index 1a78d24e..00000000 --- a/server/trpc/trpc.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { initTRPC, TRPCError } from "@trpc/server"; -import { type NextRequest } from "next/server"; -import superjson from "superjson"; -import { ZodError } from "zod"; -import { getServerAuthSession } from "@/server/auth"; - -import { db } from "@/server/db"; - -/** - * 1. CONTEXT - * - * This section defines the "contexts" that are available in the backend API. - * - * These allow you to access things when processing a request, like the database, the session, etc. - */ - -interface CreateContextOptions { - headers: Headers; -} - -/** - * This helper generates the "internals" for a tRPC context. If you need to use it, you can export - * it from here. - * - * Examples of things you may need it for: - * - testing, so we don't have to mock Next.js' req/res - * - tRPC's `createSSGHelpers`, where we don't have req/res - * - * @see https://create.t3.gg/en/usage/trpc#-serverapitrpcts - */ -export const createInnerTRPCContext = async (opts: CreateContextOptions) => { - const session = await getServerAuthSession(); - - return { - session, - headers: opts.headers, - db, - }; -}; - -/** - * This is the actual context you will use in your router. It will be used to process every request - * that goes through your tRPC endpoint. - * - * @see https://trpc.io/docs/context - */ -export const createTRPCContext = async (opts: { req: NextRequest }) => { - // Fetch stuff that depends on the request - - return await createInnerTRPCContext({ - headers: opts.req.headers, - }); -}; - -/** - * 2. INITIALIZATION - * - * This is where the tRPC API is initialized, connecting the context and transformer. We also parse - * ZodErrors so that you get typesafety on the frontend if your procedure fails due to validation - * errors on the backend. - */ - -const t = initTRPC.context().create({ - transformer: superjson, - errorFormatter({ shape, error }) { - return { - ...shape, - data: { - ...shape.data, - zodError: - error.cause instanceof ZodError ? error.cause.flatten() : null, - }, - }; - }, -}); - -export const router = t.router; - -/** - * Unprotected procedure - **/ -export const publicProcedure = t.procedure; - -/** - * Reusable middleware to ensure - * users are logged in - */ -const isAuthed = t.middleware(({ ctx, next }) => { - if (!ctx.session || !ctx.session.user) { - throw new TRPCError({ code: "UNAUTHORIZED" }); - } - return next({ - ctx: { - // infers the `session` as non-nullable - session: { ...ctx.session, user: ctx.session.user }, - }, - }); -}); - -const isAdmin = t.middleware(({ ctx, next }) => { - if (!ctx.session || !ctx.session.user || ctx.session.user.role !== "ADMIN") { - throw new TRPCError({ code: "UNAUTHORIZED" }); - } - return next({ - ctx: { - // infers the `session` as non-nullable - session: { ...ctx.session, user: ctx.session.user }, - }, - }); -}); - -/** - * Protected procedure - **/ -export const protectedProcedure = t.procedure.use(isAuthed); -export const adminOnlyProcedure = t.procedure.use(isAdmin); diff --git a/utils/editor.ts b/utils/editor.ts deleted file mode 100644 index 4dc5ae3e..00000000 --- a/utils/editor.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Editor } from "@tiptap/core"; - -export const getPrevText = ( - editor: Editor, - { - chars, - offset = 0, - }: { - chars: number; - offset?: number; - }, -) => { - // for now, we're using textBetween for now until we can figure out a way to stream markdown text - // with proper formatting: https://github.com/steven-tey/novel/discussions/7 - return editor.state.doc.textBetween( - Math.max(0, editor.state.selection.from - chars), - editor.state.selection.from - offset, - "\n", - ); - // complete(editor.storage.markdown.getMarkdown()); -}; diff --git a/utils/trpc.ts b/utils/trpc.ts deleted file mode 100644 index 9ba1d122..00000000 --- a/utils/trpc.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { httpBatchLink, loggerLink } from "@trpc/client"; -import { createTRPCNext } from "@trpc/next"; -import { type inferRouterInputs, type inferRouterOutputs } from "@trpc/server"; -import superjson from "superjson"; - -import { type AppRouter } from "@/server/api/router"; - -const getBaseUrl = () => { - if (typeof window !== "undefined") return ""; // browser should use relative url - if (process.env.DOMAIN_NAME) return `https://${process.env.DOMAIN_NAME}`; // SSR should use Domain name or vercel url on Vercel - if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`; - return `http://localhost:${process.env.PORT ?? 3000}`; // dev SSR should use localhost -}; - -export const trpc = createTRPCNext({ - config() { - return { - transformer: superjson, - links: [ - loggerLink({ - enabled: (opts) => - process.env.NODE_ENV === "development" || - (opts.direction === "down" && opts.result instanceof Error), - }), - httpBatchLink({ - url: `${getBaseUrl()}/api/trpc`, - }), - ], - }; - }, - ssr: false, -}); - -/** - * Inference helper for inputs - * @example type HelloInput = RouterInputs['example']['hello'] - **/ -export type RouterInputs = inferRouterInputs; -/** - * Inference helper for outputs - * @example type HelloOutput = RouterOutputs['example']['hello'] - **/ -export type RouterOutputs = inferRouterOutputs;