mirror of
https://github.com/ReCloudStudio/WebHooker.git
synced 2026-09-22 16:11:29 +00:00
18 lines
753 B
TypeScript
18 lines
753 B
TypeScript
import { readRawBody } from "h3";
|
|
import { handleInteractionRequest } from "../../lib/drivers/discord/interactions";
|
|
import { cfEnv, rawRequest } from "../../lib/cf";
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
// The raw Request is provided for headers/URL, but nitro consumes its body
|
|
// while buffering the payload — rebuild a fresh Request with the body from
|
|
// h3's internal buffers so the handler can read it (signature verification
|
|
// needs the exact raw bytes).
|
|
const source = rawRequest(event);
|
|
const body = await readRawBody(event, "utf8");
|
|
const request = new Request(source.url, {
|
|
method: source.method,
|
|
headers: source.headers,
|
|
body,
|
|
});
|
|
return handleInteractionRequest(request, cfEnv(event));
|
|
});
|