15 lines
823 B
TypeScript
15 lines
823 B
TypeScript
import { NextRequest, NextResponse } from "next/server";
|
|
import { errorResponse } from "../../../../../lib/http";
|
|
import { writeProjectFiles } from "../../../../../lib/storage";
|
|
|
|
export const runtime = "nodejs";
|
|
|
|
export async function POST(request: NextRequest, context: { params: Promise<{ id: string }> }) {
|
|
try {
|
|
const { id } = await context.params;
|
|
const body = await request.json();
|
|
if (!Array.isArray(body.changes) || body.changes.some((item: unknown) => !item || typeof (item as { path?: unknown }).path !== "string" || typeof (item as { content?: unknown }).content !== "string")) throw new Error("changes must contain path and content strings");
|
|
return NextResponse.json({ project: await writeProjectFiles(id, body.changes, body.revision) });
|
|
} catch (error) { return errorResponse(error); }
|
|
}
|