0.0.0-alpha.1 • Published 6 years ago

warhead-lambda v0.0.0-alpha.1

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

warhead-lambda

npm version Build Status Coverage Status Greenkeeper badge

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)
		})
})
0.0.0-alpha.2

6 years ago

0.0.0-alpha.1

6 years ago

0.0.0-alpha.0

6 years ago