Files
2026-02-13 22:02:30 +01:00

39 lines
1.2 KiB
JavaScript

import "#nitro-internal-pollyfills";
import { useNitroApp } from "nitropack/runtime";
import {
normalizeCookieHeader,
normalizeLambdaIncomingHeaders,
normalizeLambdaOutgoingBody,
normalizeLambdaOutgoingHeaders
} from "nitropack/runtime/internal";
import { withQuery } from "ufo";
const nitroApp = useNitroApp();
export async function lambda(event, context) {
const query = {
...event.queryStringParameters,
...event.multiValueQueryStringParameters
};
const url = withQuery(event.path, query);
const method = event.httpMethod || "get";
const r = await nitroApp.localCall({
event,
url,
context,
headers: normalizeLambdaIncomingHeaders(event.headers),
method,
query,
body: event.isBase64Encoded ? Buffer.from(event.body || "", "base64") : event.body
});
const cookies = normalizeCookieHeader(String(r.headers["set-cookie"]));
const awsBody = await normalizeLambdaOutgoingBody(r.body, r.headers);
return {
statusCode: r.status,
headers: normalizeLambdaOutgoingHeaders(r.headers, true),
body: awsBody.body,
isBase64Encoded: awsBody.type === "binary",
...cookies.length > 0 && {
multiValueHeaders: { "set-cookie": cookies }
}
};
}