import { NextRequest, NextResponse } from "next/server"; import { readFile } from "fs/promises"; import { join } from "path"; import { existsSync } from "fs"; import { SAVE_CONFIG } from "@/lib/saveConfig"; export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url); const name = searchParams.get("name"); if (!name) { return NextResponse.json( { error: "Script name is required" }, { status: 400 } ); } // Validate filename (same validation as save) if (!SAVE_CONFIG.FILENAME_REGEX.test(name)) { return NextResponse.json( { error: "Invalid script name" }, { status: 400 } ); } const saveDir = SAVE_CONFIG.SAVE_DIRECTORY; const filename = `${name}.rhai`; const filepath = join(saveDir, filename); // Check if file exists if (!existsSync(filepath)) { return NextResponse.json( { error: `Script "${name}" not found` }, { status: 404 } ); } // Read and return file content const content = await readFile(filepath, "utf8"); return NextResponse.json({ name, filename, content, }); } catch (error) { console.error("Get script error:", error); return NextResponse.json( { error: "Failed to read script" }, { status: 500 } ); } }