Fix SuperTokens build error with lazy initialization

- Move SuperTokens.init() to runtime (not build time)
- Add dynamic route config to prevent build-time evaluation
- Move appInfo inside backendConfig function
- Update default URLs to vibnai.com

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-16 17:22:41 -08:00
parent c3bbc7818d
commit 44895f9c31
2 changed files with 36 additions and 12 deletions

View File

@@ -3,36 +3,58 @@ import SuperTokens from "supertokens-node";
import { backendConfig } from "@/lib/supertokens/backendConfig";
import { getAppDirRequestHandler } from "supertokens-node/nextjs";
SuperTokens.init(backendConfig());
// Tell Next.js this is a dynamic route (don't evaluate at build time)
export const dynamic = 'force-dynamic';
export const runtime = 'nodejs';
const handleRequest = getAppDirRequestHandler(NextResponse);
// Initialize SuperTokens lazily (only when first request comes in)
let initialized = false;
function ensureInitialized() {
if (!initialized && typeof window === 'undefined') {
SuperTokens.init(backendConfig());
initialized = true;
}
}
export async function GET(request: NextRequest) {
ensureInitialized();
const handleRequest = getAppDirRequestHandler(NextResponse);
const response = await handleRequest(request);
return response;
}
export async function POST(request: NextRequest) {
ensureInitialized();
const handleRequest = getAppDirRequestHandler(NextResponse);
const response = await handleRequest(request);
return response;
}
export async function DELETE(request: NextRequest) {
ensureInitialized();
const handleRequest = getAppDirRequestHandler(NextResponse);
const response = await handleRequest(request);
return response;
}
export async function PUT(request: NextRequest) {
ensureInitialized();
const handleRequest = getAppDirRequestHandler(NextResponse);
const response = await handleRequest(request);
return response;
}
export async function PATCH(request: NextRequest) {
ensureInitialized();
const handleRequest = getAppDirRequestHandler(NextResponse);
const response = await handleRequest(request);
return response;
}
export async function HEAD(request: NextRequest) {
ensureInitialized();
const handleRequest = getAppDirRequestHandler(NextResponse);
const response = await handleRequest(request);
return response;
}