Files
rednote-tool-studio/app/api/projects/[id]/patch/route.ts
T
2026-09-17 21:54:33 +08:00

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); }
}