lambda-response-template
v2.2.0
Published
💬 A tiny utility for creating AWS Lambda response objects.
Downloads
140
Readme
lambda-response-template
💬 A tiny utility for creating AWS Lambda response objects.
This package provides an easy way for you generate templates for your responses. Increase readability and make your output more consistent across your Lambda application.
Install
npm install lambda-response-template
Features
- Templating
- Create re-usable templates for your responses.
- Transforming
- Transform your response body before returning it, removing the need to stringify your JSON responses.
- Fully TypeScript supported
Why
When developing large applications you often work across multiple repositories. I found myself following the same pattern of creating a factory in each repository every time I wanted set standards for a lambda's output. When you also have to add tests for this boilerplate it can quickly get annoying - this package aims to solve this problem by creating a first class, best version of this generic method.
Usage
Set up lambda-response-template your defaults:
import { ResponseTemplate } from 'lambda-response-template';
const reply = new ResponseTemplate({
headers: {
'x-powered-by': 'nodejs',
}
});
And then use inside your function:
async function handler(event, context) {
return reply.make(200, body, options);
}
Your response will be made from the template, inheriting any options you set.
Tips
Shortcut for Content-Type header
const a = reply.make(200, body, {
headers: { 'content-type': 'text/plain' }
});
// can be written as
const b = reply.make(200, body, 'text/plain');
Automatically stringify responses
const reply = new ResponseTemplate({
transform: (value) => JSON.stringify(value)
})
const response = reply.make(400, {
theTruth: 'Pizza cutters are a lie!'
});