diff --git a/src/app/(debug)/debug/page.tsx b/src/app/(debug)/debug/page.tsx new file mode 100644 index 0000000..5f30ea0 --- /dev/null +++ b/src/app/(debug)/debug/page.tsx @@ -0,0 +1,15 @@ +import PrintEnv from "@/components/widgets/print-env"; +import { authOptions } from "@/server/auth"; +import { getServerSession } from "next-auth"; +import { headers } from "next/headers"; + +const DebugPage = async () => { + const session = await getServerSession(authOptions); + const request = headers(); + return ( +
+ +
+ ); +}; +export default DebugPage; diff --git a/src/app/(parent)/debug/page.tsx b/src/app/(parent)/debug/page.tsx deleted file mode 100644 index 8ac293a..0000000 --- a/src/app/(parent)/debug/page.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import QRCode from 'react-qr-code'; - -const DebugPage = () => { - return ( -
- -
- ); -}; -export default DebugPage; diff --git a/src/components/widgets/print-env.tsx b/src/components/widgets/print-env.tsx new file mode 100644 index 0000000..4309548 --- /dev/null +++ b/src/components/widgets/print-env.tsx @@ -0,0 +1,19 @@ +import { type Session } from "next-auth"; +import { type ReadonlyHeaders } from "next/dist/server/web/spec-extension/adapters/headers"; +import React from "react"; +import { env } from "@/env"; +type PrintEnvProps = { + session: Session | null; + request: ReadonlyHeaders; +}; + +const PrintEnv: React.FC = ({ session, request }) => { + return ( +
+
{JSON.stringify(session, null, 2)}
+
{JSON.stringify(request, null, 2)}
+
{JSON.stringify(env, null, 2)}
+
+ ); +}; +export default PrintEnv; diff --git a/src/lib/helpers/debug.ts b/src/lib/helpers/debug.ts new file mode 100644 index 0000000..a75398d --- /dev/null +++ b/src/lib/helpers/debug.ts @@ -0,0 +1,30 @@ +/* eslint-disable @typescript-eslint/no-unsafe-return */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +export function syntaxHighlight(json) { + if (typeof json != "string") { + json = JSON.stringify(json, undefined, 2); + } + json = json + .replace(/&/g, "&") + .replace(//g, ">"); + return json.replace( + /("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, + function (match) { + var cls = "number"; + if (/^"/.test(match)) { + if (/:$/.test(match)) { + cls = "key"; + } else { + cls = "string"; + } + } else if (/true|false/.test(match)) { + cls = "boolean"; + } else if (/null/.test(match)) { + cls = "null"; + } + return '' + match + ""; + }, + ); +}