Integration with Azure Functions
Azure Functions is a serverless environment that supports JavaScript. feTS is platform agnostic and can be deployed to Azure Functions as well.
Installation
npm i fets @azure/functions
Usage
import { createRouter, Response } from 'fets'
import { AzureFunction, Context, HttpRequest } from '@azure/functions'
const router = createRouter<Context>().route({
method: 'GET',
path: '/greetings',
schemas: {
responses: {
200: {
type: 'object',
properties: {
message: {
type: 'string'
}
},
required: ['message'],
additionalProperties: false
}
}
},
handler: () => Response.json({ message: 'Hello World!' })
})
const httpTrigger: AzureFunction = async function (
context: Context,
req: HttpRequest
): Promise<void> {
const response = await router.fetch(req.url, {
method: req.method?.toString(),
body: req.rawBody,
headers: req.headers
})
const headersObj = {}
response.headers.forEach((value, key) => {
headersObj[key] = value
})
const responseText = await response.text()
context.res = {
status: response.status,
body: responseText,
headers: headersObj
}
}