import { NextRequest } from "next/server"; import { z } from "zod"; import { searchLabels } from "@/server/repo/zxdb"; const querySchema = z.object({ q: z.string().optional(), page: z.coerce.number().int().positive().optional(), pageSize: z.coerce.number().int().positive().max(100).optional(), }); export async function GET(req: NextRequest) { const { searchParams } = new URL(req.url); const parsed = querySchema.safeParse({ q: searchParams.get("q") ?? undefined, page: searchParams.get("page") ?? undefined, pageSize: searchParams.get("pageSize") ?? undefined, }); if (!parsed.success) { return new Response( JSON.stringify({ error: parsed.error.flatten() }), { status: 400, headers: { "content-type": "application/json" } } ); } const data = await searchLabels(parsed.data); return new Response(JSON.stringify(data), { headers: { "content-type": "application/json", "cache-control": "no-store" }, }); } export const runtime = "nodejs";