codeverse / app /api /browser /route.ts
shubhjn's picture
fix bul memeory problem
0b6a8e8
import { NextRequest, NextResponse } from "next/server";
import { browserManager } from "@/lib/browser/playwright";
export async function POST(req: NextRequest) {
try {
const { action, payload } = await req.json();
switch (action) {
case "navigate":
if (!payload?.url) return NextResponse.json({ error: "URL required" }, { status: 400 });
const finalUrl = await browserManager.navigate(payload.url);
return NextResponse.json({ url: finalUrl });
case "click":
if (!payload?.selector) return NextResponse.json({ error: "Selector required" }, { status: 400 });
await browserManager.click(payload.selector);
return NextResponse.json({ success: true });
case "type":
if (!payload?.selector || !payload?.text) return NextResponse.json({ error: "Selector and text required" }, { status: 400 });
await browserManager.type(payload.selector, payload.text);
return NextResponse.json({ success: true });
case "snapshot":
const data = await browserManager.getSnapshot();
return NextResponse.json(data);
case "close":
await browserManager.close();
return NextResponse.json({ success: true });
default:
return NextResponse.json({ error: "Unknown action" }, { status: 400 });
}
} catch (e: unknown) {
const error = e instanceof Error ? e : new Error(String(e));
console.error("Browser API Error:", error);
return NextResponse.json({ error: error.message }, { status: 500 });
}
}