Skip to content

Instantly share code, notes, and snippets.

@meza
Created February 5, 2020 22:08
Show Gist options
  • Save meza/1beb98e316a23bb301f35ebb0f75d9d3 to your computer and use it in GitHub Desktop.
Save meza/1beb98e316a23bb301f35ebb0f75d9d3 to your computer and use it in GitHub Desktop.
Map express to lambda
export const mapFromLambda = (lambdaResponse, expressResponse) => {
expressResponse.status(lambdaResponse.statusCode);
if (lambdaResponse.headers) {
Object.keys(lambdaResponse.headers).forEach((headerName) => {
expressResponse.setHeader(headerName, lambdaResponse.headers[headerName]);
});
}
expressResponse.send(lambdaResponse.body);
};
export const callHandler = (request, response, handler) => {
const event = {
httpMethod: request.method,
body: request.body,
pathParameters: request.params,
queryStringParameters: request.query,
headers: request.headers
};
const callback = (error, lambdaResponse) => {
if (error === null) {
mapFromLambda(lambdaResponse, response);
} else {
response.status(500);
response.send(JSON.stringify({ message: error.message }));
}
};
handler(event, {}, callback);
};
export default callHandler;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment