Integration with Fastify

Fastify is one of the popular HTTP server frameworks for Node.js..

Installation

npm i fets fastify

Example

import fastify, { FastifyReply, FastifyRequest } from 'fastify'
import { createRouter, Response } from 'fets'
 
const app = fastify()
 
const router = createRouter().route({ method: 'GET', path: '/greetings', schemas: { responses: {
200: { type: 'object', properties: { message: { type: 'string' } }, required: ['message'],
additionalProperties: false } } }, handler: () => Response.json({ message: 'Hello World!' }) })
 
app.route({ method: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], url: '/\*', async handler(req, reply)
{ const response = await router.handleNodeRequest(req, { req, reply })
 
    if (response === undefined) {
      void reply.status(404).send('Not found.')
      return reply
    }
 
    response.headers.forEach((value, key) => {
      void reply.header(key, value)
    })
 
    void reply.status(response.status)
 
    void reply.send(response.body)
 
} })
 
app.listen(4000)