0.4.0 • Published 1 year ago
middy-server v0.4.0
Middy Server
Library to create an HTTP server from a Middy http router handler. Instead of deploying your handler to AWS or running locally with SAM, you can wrap it and run it as an http server.
Installing
Using npm:
$ npm install middy-serverUsing yarn:
$ yarn add middy-serverImporting
Importing with ESM:
import { middyServer } from "middy-server";Importing with CJS:
const middyServer = require("middy-server");Usage
This is designed to wrapp middy handlers that are using the @middy/http-router middleware. For example, take this middy handler:
import middy, { type MiddyfiedHandler } from "@middy/core";
import httpRouterHandler from "@middy/http-router";
import type { Method } from "@middy/http-router";
import type {
APIGatewayEvent,
APIGatewayProxyResult,
Context,
} from "aws-lambda";
const getHandler = middy().handler(
(event: APIGatewayEvent, context: Context): APIGatewayProxyResult => {
return {
statusCode: 200,
body: '{"hello": "world"}',
};
}
);
const postHandler = middy().handler(
(event: APIGatewayEvent, context: Context): APIGatewayProxyResult => {
return {
headers: { "content-type": "application/json" },
statusCode: 201,
body: String(event.body),
};
}
);
const routes = [
{
method: "GET" as Method,
path: "/test",
handler: getHandler,
},
{
method: "POST" as Method,
path: "/test",
handler: postHandler,
},
];
export const handler: MiddyfiedHandler = middy().handler(
httpRouterHandler(routes)
);To test this as an http server, you can create a new file:
import { middyServer } from "middy-server";
import { handler } from "./middy_handler";
const server = middyServer(handler);
server.listen(3000, "localhost", () => {
console.log("Server is running on http://localhost:3000");
});That will start up an http server that will forward requests to your middy handler and convert both the requests and response.
$ curl http://localhost:3000/test
{"hello": "world"}
$ curl -d '{"test" : "123"}' http://localhost:3000/test
{"test" : "123"}Configuration
This is the available configuration for configuring the server:
{
// `eventType` is the type of lambda event being used by the Middy router
// This defaults to APIGatewayProxyEventV2, but can also be set to APIGatewayProxyEvent or ALBEvent
// This is dependent on what the event source is for your lambda in AWS
eventType: "APIGatewayProxyEventV2",
}0.4.0
1 year ago
0.3.0-alpha
1 year ago
0.2.2-alpha
1 year ago
0.2.1-alpha
1 year ago
0.2.0-alpha
1 year ago
0.1.0-alpha
1 year ago