Apex Node.js
Node.js module that makes AWS Lambda's user experience a little nicer using promises.
Example
The following example fetches some urls and reports the response status of each. The context is also passed, but is not
shown here.
import λ from 'apex-lambda'
import axios from 'axios'
import 'babel-polyfill'
export default λ(e => {
console.log('fetching %d urls', e.urls.length)
return Promise.all(e.urls.map(async function(url){
console.log('fetching %s', url)
return {
status: (await axios.get(url)).status,
url
}
}))
})
Without apex-node it looks something like the following, as Lambda does not try/catch, and the Context
provided has awkward method names that are not idiomatic.
import axios from 'axios'
import 'babel-polyfill'
export default async function(e, ctx) {
console.log('fetching %d urls', e.urls.length)
try {
const res = await Promise.all(e.urls.map(async function(url){
console.log('fetching %s', url)
return {
status: (await axios.get(url)).status,
url
}
}))
ctx.succeed(res)
} catch (err) {
ctx.fail(err)
}
}
Contributors
Badges
![](https://img.shields.io/badge/status-stable-green.svg)
tjholowaychuk.com ·
GitHub @tj ·
Twitter @tjholowaychuk