Skip to content

fastify/fastify-accepts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

963d96c · Mar 7, 2025
Mar 7, 2025
Jan 10, 2025
Dec 4, 2024
Oct 6, 2023
Feb 8, 2024
Nov 24, 2022
Jul 21, 2017
Feb 3, 2025
Dec 4, 2024
Dec 4, 2024
Jan 10, 2025

Repository files navigation

@fastify/accepts

CI NPM version neostandard javascript style

Add an accepts parser to Fastify.

Install

npm i @fastify/accepts

Compatibility

Plugin version Fastify version
^5.x ^5.x
^4.x ^4.x
^2.x ^3.x
^1.x ^2.x
^1.x ^1.x

Please note that if a Fastify version is out of support, then so are the corresponding versions of this plugin in the table above. See Fastify's LTS policy for more details.

Usage

const fastify = require('fastify')
const Boom = require('@hapi/boom')

fastify.register(require('@fastify/accepts'))

fastify.post('/', function (req, reply) {
  const accept = req.accepts() // Accepts object
  switch(accept.type(['json', 'html'])) {
    case 'json':
      reply.type('application/json').send({hello: 'world'})
      break
    case 'html':
      reply.type('text/html').send('<b>hello, world!</b>')
      break
    default:
      reply.send(Boom.notAcceptable('unacceptable'))
      break
  }
})

See accepts package for all available APIs.

This plugin adds to Request object all Accepts object methods.

fastify.post('/', function (req, reply) {
  req.charset(['utf-8'])
  req.charsets()
  req.encoding(['gzip', 'compress'])
  req.encodings()
  req.language(['es', 'en'])
  req.languages()
  req.type(['image/png', 'image/tiff'])
  req.types()
})

Options

  • decorateReply If true, the Reply object will be decorated with the requestAccepts, requestTypes, requestCharsets, requestEncodings, and requestLanguages methods, which will return the corresponding values from the Request object. Default: false.

License

Licensed under MIT.