0.1.6 • Published 5 years ago

request-lambda v0.1.6

Weekly downloads
14
License
ISC
Repository
github
Last release
5 years ago

request-lambda

This package attempts to replicate the API for request, but for AWS lambda functions built with serverless-http.

Usage

Basic usage is similar to the request package, but requires an extra FunctionName param.

Default values are shown here:

const request = require('request-lambda')

request(
  {
    FunctionName: '', // required
    Qualifier: '$LATEST',
    LogType: 'None',
    method: 'GET',
    uri: '', // required
    headers: {},
    body: null,
    gzip: false,
    json: false,
    resolveWillFullResponse: false,
    simple: true
  },
  (err, response) => {
    // ... handle the response here ...
  }
)

Promises

Along with handling a callback function, the request call also returns a promise.

const request = require('request-lambda')

request(
  {
    FunctionName: '', // required
    Qualifier: '$LATEST',
    LogType: 'None',
    method: 'GET',
    uri: '', // required
    headers: {},
    body: null,
    gzip: false,
    json: false,
    resolveWillFullResponse: false,
    simple: true
  }
)
  .then((response) => {
    // ... handle a successful response here ...
  })
  .catch((err) => {
    // ... handle an error here ...
  })

Re-use

A Lambda closure can be used for repeated requests.

const { Lambda } = require('request-lambda')

const lambda = Lambda({
    FunctionName: '', // required
    Qualifier: '$LATEST',
    LogType: 'None',
    gzip: false,
    json: false,
    resolveWillFullResponse: false,
    simple: true
})

lambda(
  {
    method: 'GET',
    uri: '', // required
    headers: {},
    body: null
  }
)
  .then((response) => {
    // ... handle a successful response here ...
  })
  .catch((err) => {
    // ... handle an error here ...
  })

When using the closure, note that FunctionName, Qualifier, and LogType are immutable. However, all other params may be passed to either the closure creation or the request call, with the request values taking precedence.

For example, gzip is true in the following request:

const { Lambda } = require('request-lambda')

const lambda = Lambda({
    FunctionName: '', // required
    Qualifier: '$LATEST',
    LogType: 'None',
    gzip: false, // defaulted to false for all subsequent requests
    json: false,
    resolveWillFullResponse: false,
    simple: true
})

lambda(
  {
    method: 'GET',
    uri: '', // required
    headers: {},
    body: null,
    gzip: true // overridden for this request
  }
)
  .then((response) => {
    // ... handle a successful response here ...
  })
  .catch((err) => {
    // ... handle an error here ...
  })
0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago