@serverless-guy/lambda
A small lambda wrapper that lets you write cleaner and maintainable lambda function
Status
Installation
You can start by installing this library using the command below:
npm i --save @serverless-guy/lambda
Basic Usage
In the example below, the handler would log the event
first, then context
. Afterwards, it will return the event
as response.
import { wrapper } from "@serverless-guy/lambda";
export const handler = wrapper(someHandler);
function someHandler(request, response) {
const { event, context } = request;
console.log(event);
console.log(context);
return response(event);
}
Using middleware
import { wrapper } from "@serverless-guy/lambda";
export const handler = wrapper(someHandler);
handler.pushMiddleware(checkBody);
function parse(body) {
if (!body) {
return {}
}
return JSON.parse(body);
}
export function checkBody(request, next) {
const { event } = request;
const body = parse(event.body);
if (!body.sampleValue1) {
throw new Error("Validation Failed");
}
return next(request);
}
function someHandler(request, response) {
const { event, context } = request;
const body = JSON.parse(event.body);
console.log(context);
return response({ message: body.sampleValue1 });
}
Using custom response function
import { wrapper } from "@serverless-guy/lambda";
export const handler = wrapper(someHandler);
handler.setResponseTemplate(customResponseTemplate);
function customResponseTemplate(data, statusCode = 200, headers = {}) {
data.returnedOn = new Date();
return {
body: JSON.stringify(data),
headers: {
"Access-Control-Allow-Origin": "*",
...headers
},
statusCode
};
}
function someHandler(request, response) {
const { event, context } = request;
console.log(event);
console.log(context);
return response(event);
}
Using custom error response function
import { wrapper } from "@serverless-guy/lambda";
export const handler = wrapper(someHandler);
handler.setCatchTemplate(customCatchResponseTemplate);
function customCatchResponseTemplate(error, request, responseFunction) {
const errorResponseObject = {
errorCode: error.name,
errorMessage: error.message
};
return response(errorResponseObject, 418);
}
function someHandler(request, response) {
const { event, context } = request;
console.log(event);
console.log(context);
return response(event);
}
Check out our documentation page to see more examples.