2.2.0 • Published 5 years ago

lambda-response-template v2.2.0

Weekly downloads
234
License
Apache-2.0
Repository
github
Last release
5 years ago

lambda-response-template

npm version Build Status codecov dependencies Status

💬 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!'
});
2.2.0

5 years ago

2.1.2

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.0

5 years ago

2.0.0-alpha.1

5 years ago

2.0.0-alpha.0

5 years ago