import { createFileRoute } from '@tanstack/solid-router'
const convexSiteUrl =
import.meta.env.PUBLIC_CONVEX_SITE_URL! ||
process.env.PUBLIC_CONVEX_SITE_URL! ||
import.meta.env.VITE_CONVEX_SITE_URL! ||
process.env.VITE_CONVEX_SITE_URL!
async function handler({ request }: { request: Request }) {
try {
const requestUrl = new URL(request.url)
if (!convexSiteUrl) {
throw new Error('VITE_CONVEX_SITE_URL is not set')
}
const nextUrl = `${convexSiteUrl}${requestUrl.pathname}${requestUrl.search}`
const newRequest = new Request(request, { redirect: 'manual' })
newRequest.headers.set('accept-encoding', 'application/json')
const response = await fetch(nextUrl, newRequest)
const body = response.body
const status = response.status
const statusText = response.statusText
const headers = new Headers(response.headers)
headers.set('Cache-Control', 'no-cache, no-store, must-revalidate')
headers.set('Pragma', 'no-cache')
headers.set('Expires', '0')
return new Response(body, {
status,
statusText,
headers,
})
} catch (e: any) {
console.error(e)
let message = 'Internal Server Error'
if (import.meta.env.MODE !== 'production') {
message = e?.message || message
}
return new Response(message, { status: 500 })
}
}
export const Route = createFileRoute('/api/auth/$')({
server: {
handlers: {
GET: handler,
POST: handler,
},
},
})