-
-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathroute.js
More file actions
30 lines (23 loc) · 1.12 KB
/
route.js
File metadata and controls
30 lines (23 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { after } from "next/server";
import { startup } from "../../../lib/exceptionless-server.js";
import { buildRequestContextFromRequest } from "../../../lib/next-request.js";
export async function POST(request) {
const parsedBody = await request.json().catch(() => ({}));
const body = typeof parsedBody === "object" && parsedBody !== null ? parsedBody : { value: parsedBody };
const mode = typeof body.mode === "string" ? body.mode : "log";
if (mode === "error") {
throw new Error("Route handler crash from the Exceptionless Next.js demo");
}
const { Exceptionless, KnownEventDataKeys } = await startup();
const builder = Exceptionless.createLog("nextjs.route", "Route handler log from the demo page", "info").addTags("route-handler");
builder.setContextProperty(KnownEventDataKeys.RequestInfo, buildRequestContextFromRequest(request, body));
await builder.submit();
after(async () => {
const { Exceptionless } = await startup();
await Exceptionless.processQueue();
});
return Response.json({
ok: true,
message: "Server route log submitted. The queue will flush in next/after()."
});
}