npm.io
0.0.11 • Published 7 years ago

tote-lib

Licence
MIT
Version
0.0.11
Deps
2
Size
18 kB
Vulns
0
Weekly
0

tote-lib

tote-lib is a helper library for Tote.

API

tote-lib exports four items.

Func

Func is the class you use to setup your function. It includes several helper methods.

Example
// import dependencies
import { Func, joi } from 'tote-lib'

// create your function
class Hello extends Func {
  // define your schema
  schema = {
    // query parameters
    query: joi.object({
      number: joi.number()
    })
  }

  // define your function here
  invoke() {
    // get query params
    const {
      query: { number = 5 }
    } = this.request

    // return object
    return {
      hello: 'world',
      result: number * 2
    }
  }
}

// bootstrap and export
export default Func.bootstrap(Hello)
Options
Name Type Description
context Object Azure Function execution context
request Object Request object. Contains body, headers, and query objects with any parameters
status<number> Function Set the HTTP status code
send<object> Function Set the JSON body
Usage

request

Get input parameters.

// get parameters
const {
  body: { foo },
  query: { name }
} = this.request

// use them

status

this.status(404)

send

You can just return the object from your function. But you can also use send.

this.send({
  foo: 'bar'
})
Exception

Exception extends Error and lets you throw sensible errors from your functions.

Parameters
Name Type Description Default
message string Error message or key unknown_error
status number HTTP status code 500
Usage
throw new Exception('Email required', 400)
invoke

invoke is a helper for invoking functions when writing your tests.

Parameters
Name Type Description
name string Function name, should correspond to a directory
request Object Optional. Request object, may contain body, headers, and query objects
Usage
invoke('hello', {
  headers: {
    authorization: 'Bearer ...'
  },
  query: {
    name: 'Ali'
  }
})
joi

Look at Joi docs.