@fastify/type-provider-typebox

A Type Provider for Typebox over Fastify

Usage no npm install needed!

<script type="module">
  import fastifyTypeProviderTypebox from 'https://cdn.skypack.dev/@fastify/type-provider-typebox';
</script>

README

fastify-type-provider-typebox

A Type Provider for Typebox

Installation

npm install @fastify/type-provider-typebox --save

Usage

import Fastify from 'fastify'
import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'

const fastify = Fastify().withTypeProvider<TypeBoxTypeProvider>()

Note: For [ajv] version 7 and above is required to use the ajvTypeBoxPlugin:

import Fastify from 'fastify'
import { ajvTypeBoxPlugin, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'

const fastify = Fastify({
  ajv: {
    plugins: [ajvTypeBoxPlugin]
  }
}).withTypeProvider<TypeBoxTypeProvider>()

Example

import Fastify from 'fastify'
import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'
import { Type } from '@sinclair/typebox'

const fastify = Fastify().withTypeProvider<TypeBoxTypeProvider>()

fastify.get('/', {
  schema: {
    body: Type.Object({
      x: Type.String(),
      y: Type.Number(),
      z: Type.Boolean()
    })
  }
}, (req) => {
  // The `x`, `y`, `z` types are automatically inferred
  const { x, y, z } = req.body
})