0.4.0 • Published 10 months 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-server
Using yarn:
$ yarn add middy-server
Importing
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
10 months ago
0.3.0-alpha
10 months ago
0.2.2-alpha
11 months ago
0.2.1-alpha
11 months ago
0.2.0-alpha
11 months ago
0.1.0-alpha
11 months ago