warhead-lambda v0.0.0-alpha.1
warhead-lambda
Warhead uses adapters to provide an abstraction layer with a unified interface atop any given platform.
adapter(handler)
A Warhead adapter for AWS Lambda functions.
const { adapter } = require('warhead-lambda')
exports.handler = adapter(function(request, context){
	// Do things
	// Return value or Promise
})Arguments:
1. Handler function with up to 2 arguments.
	1. An instance of Request which contains all the request information .
	2. The context object provided by AWS Lambda which can also be access via the this variable.
For synchronous operations, you may return a value or Response.
return {foo: 'bar'}For asynchronous operations, you may return a Promise that resolves a value or a Response.
return Promise.resolve({foo: 'bar'})If the value returned by the handler is not an instance of Response, it will be wrapped in a Response with a default response code of 200 and a content-type header of application/json automatically.
If an error is thrown or a Promise is rejected with a value other than a Response, it will be wrapped in a Response with a default response code of 500 and a content-type header of application/json automatically.
Response(body)
A constructor for building a proper response for AWS Lambda's proxy integration.
Arguments:
1. The desired response body.
2. A transformation function used to stringify the body, defaults to JSON.stringify.
If an object is provided, it will automatically be stringified. New instances default to a response code of 200 and a content-type header of application/json.
const { adapter, Response } = require('warhead-lambda')
exports.handler = adapter(function(request){
	return new Response({message: 'Hello World!'})
})response.status(code)
Set or get status code of a response.
const { Response } = require('warhead-lambda')
const response = new Response({message: 'Hello World!'})
response.status(200)response.header(name, value)
Set or get a header of a response.
const { Response } = require('warhead-lambda')
const response = new Response({message: 'Hello World!'})
response.header('foo', 'bar')test-helpers
Helpers for testing functions written with the warhead-lambda adapter.
harness()
A harness for testing a lambda function.
import test from 'ava'
import { adapter, Response } 'warhead-lambda'
import { harness } 'warhead-lambda/test-helpers'
const request = {
	body: {foo: 'bar'}
}
const handler = adapter(request => {
	return new Response({message: request.body.foo})
})
test(t => {
	return harness(handler, request)
		.then(result => {
			t.true(result instanceof Response)
			t.is('bar', result.body.message)
		})
})