penambahan web socket
This commit is contained in:
3
examples/nuxt3-websocket-client/node_modules/nitropack/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.ts
generated
vendored
Normal file
3
examples/nuxt3-websocket-client/node_modules/nitropack/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.ts
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import type { APIGatewayProxyEventV2 } from "aws-lambda";
|
||||
import "#nitro-internal-pollyfills";
|
||||
export declare const handler: import("aws-lambda").StreamifyHandler<APIGatewayProxyEventV2, void>;
|
||||
72
examples/nuxt3-websocket-client/node_modules/nitropack/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs
generated
vendored
Normal file
72
examples/nuxt3-websocket-client/node_modules/nitropack/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs
generated
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
import "#nitro-internal-pollyfills";
|
||||
import { useNitroApp } from "nitropack/runtime";
|
||||
import {
|
||||
normalizeCookieHeader,
|
||||
normalizeLambdaIncomingHeaders,
|
||||
normalizeLambdaOutgoingHeaders
|
||||
} from "nitropack/runtime/internal";
|
||||
import { withQuery } from "ufo";
|
||||
const nitroApp = useNitroApp();
|
||||
export const handler = awslambda.streamifyResponse(
|
||||
async (event, responseStream, context) => {
|
||||
const query = {
|
||||
...event.queryStringParameters
|
||||
};
|
||||
const url = withQuery(event.rawPath, query);
|
||||
const method = event.requestContext?.http?.method || "get";
|
||||
if ("cookies" in event && event.cookies) {
|
||||
event.headers.cookie = event.cookies.join(";");
|
||||
}
|
||||
const r = await nitroApp.localCall({
|
||||
event,
|
||||
url,
|
||||
context,
|
||||
headers: normalizeLambdaIncomingHeaders(event.headers),
|
||||
method,
|
||||
query,
|
||||
body: event.isBase64Encoded ? Buffer.from(event.body || "", "base64").toString("utf8") : event.body
|
||||
});
|
||||
const isApiGwV2 = "cookies" in event || "rawPath" in event;
|
||||
const cookies = normalizeCookieHeader(r.headers["set-cookie"]);
|
||||
const httpResponseMetadata = {
|
||||
statusCode: r.status,
|
||||
...cookies.length > 0 && {
|
||||
...isApiGwV2 ? { cookies } : { multiValueHeaders: { "set-cookie": cookies } }
|
||||
},
|
||||
headers: {
|
||||
...normalizeLambdaOutgoingHeaders(r.headers, true),
|
||||
"Transfer-Encoding": "chunked"
|
||||
}
|
||||
};
|
||||
const body = r.body ?? new ReadableStream({
|
||||
start(controller) {
|
||||
controller.enqueue("");
|
||||
controller.close();
|
||||
}
|
||||
});
|
||||
const writer = awslambda.HttpResponseStream.from(
|
||||
// @ts-expect-error TODO: IMPORTANT! It should be a Writable according to the aws-lambda types
|
||||
responseStream,
|
||||
httpResponseMetadata
|
||||
);
|
||||
if (!body.getReader) {
|
||||
writer.write(
|
||||
r.body
|
||||
/* TODO */
|
||||
);
|
||||
writer.end();
|
||||
return;
|
||||
}
|
||||
const reader = body.getReader();
|
||||
await streamToNodeStream(reader, responseStream);
|
||||
writer.end();
|
||||
}
|
||||
);
|
||||
async function streamToNodeStream(reader, writer) {
|
||||
let readResult = await reader.read();
|
||||
while (!readResult.done) {
|
||||
writer.write(readResult.value);
|
||||
readResult = await reader.read();
|
||||
}
|
||||
writer.end();
|
||||
}
|
||||
4
examples/nuxt3-websocket-client/node_modules/nitropack/dist/presets/aws-lambda/runtime/aws-lambda.d.ts
generated
vendored
Normal file
4
examples/nuxt3-websocket-client/node_modules/nitropack/dist/presets/aws-lambda/runtime/aws-lambda.d.ts
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyResultV2, Context } from "aws-lambda";
|
||||
import "#nitro-internal-pollyfills";
|
||||
export declare function handler(event: APIGatewayProxyEvent, context: Context): Promise<APIGatewayProxyResult>;
|
||||
export declare function handler(event: APIGatewayProxyEventV2, context: Context): Promise<APIGatewayProxyResultV2>;
|
||||
45
examples/nuxt3-websocket-client/node_modules/nitropack/dist/presets/aws-lambda/runtime/aws-lambda.mjs
generated
vendored
Normal file
45
examples/nuxt3-websocket-client/node_modules/nitropack/dist/presets/aws-lambda/runtime/aws-lambda.mjs
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
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 handler(event, context) {
|
||||
const query = {
|
||||
...event.queryStringParameters,
|
||||
...event.multiValueQueryStringParameters
|
||||
};
|
||||
const url = withQuery(
|
||||
event.path || event.rawPath,
|
||||
query
|
||||
);
|
||||
const method = event.httpMethod || event.requestContext?.http?.method || "get";
|
||||
if ("cookies" in event && event.cookies) {
|
||||
event.headers.cookie = event.cookies.join(";");
|
||||
}
|
||||
const r = await nitroApp.localCall({
|
||||
event,
|
||||
url,
|
||||
context,
|
||||
headers: normalizeLambdaIncomingHeaders(event.headers),
|
||||
method,
|
||||
query,
|
||||
body: event.isBase64Encoded ? Buffer.from(event.body || "", "base64").toString("utf8") : event.body
|
||||
});
|
||||
const isApiGwV2 = "cookies" in event || "rawPath" in event;
|
||||
const awsBody = await normalizeLambdaOutgoingBody(r.body, r.headers);
|
||||
const cookies = normalizeCookieHeader(r.headers["set-cookie"]);
|
||||
return {
|
||||
...cookies.length > 0 && {
|
||||
...isApiGwV2 ? { cookies } : { multiValueHeaders: { "set-cookie": cookies } }
|
||||
},
|
||||
statusCode: r.status,
|
||||
headers: normalizeLambdaOutgoingHeaders(r.headers, true),
|
||||
body: awsBody.body,
|
||||
isBase64Encoded: awsBody.type === "binary"
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user