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.