mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-10-27 06:15:15 +00:00
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { app } from "@holocron.so/vite/app"
|
|
import { docsChat, type ChatEnvironment } from "./chat"
|
|
import { docsMcp } from "./mcp"
|
|
import { docsFeedback } from "./feedback"
|
|
import "../style.css"
|
|
|
|
export { app }
|
|
|
|
export default {
|
|
async fetch(request: Request, env: ChatEnvironment): Promise<Response> {
|
|
if (new URL(request.url).pathname === "/docs/api/feedback") {
|
|
return docsFeedback(request, env)
|
|
}
|
|
if (new URL(request.url).pathname === "/docs/api/chat") {
|
|
return docsChat(request, env)
|
|
}
|
|
if (new URL(request.url).pathname === "/docs/mcp") {
|
|
return docsMcp(request, env)
|
|
}
|
|
const response = await app.handle(request)
|
|
const redirectHeader = response.headers.has("x-spiceflow-redirect")
|
|
? "x-spiceflow-redirect"
|
|
: "Location"
|
|
const location = response.headers.get(redirectHeader)
|
|
if (!location) return response
|
|
const target = new URL(location, request.url)
|
|
if (target.origin !== new URL(request.url).origin) return response
|
|
if (redirectHeader === "x-spiceflow-redirect")
|
|
target.searchParams.delete("__rsc")
|
|
const headers = new Headers(response.headers)
|
|
headers.set(
|
|
redirectHeader,
|
|
`${target.pathname}${target.search}${target.hash}`,
|
|
)
|
|
return new Response(response.body, {
|
|
status: response.status,
|
|
statusText: response.statusText,
|
|
headers,
|
|
})
|
|
},
|
|
}
|