Skip to content

fastify/fast-content-type-parse

Folders and files

NameName
Last commit message
Last commit date
Mar 31, 2025
Sep 10, 2023
Mar 8, 2025
Dec 8, 2024
Oct 6, 2023
Jul 13, 2024
Jan 6, 2023
Jan 6, 2023
Feb 3, 2025
Dec 8, 2024
Sep 18, 2023
Mar 8, 2025

Repository files navigation

fast-content-type-parse

NPM version NPM downloads CI neostandard javascript style Security Responsible Disclosure

Parse HTTP Content-Type header according to RFC 7231.

Installation

$ npm install fast-content-type-parse

Usage

const fastContentTypeParse = require('fast-content-type-parse')

fastContentTypeParse.parse(string)

const contentType = fastContentTypeParse.parse('application/json; charset=utf-8')

Parse a Content-Type header. Throws a TypeError if the string is invalid.

It will return an object with the following properties (examples are shown for the string 'application/json; charset=utf-8'):

  • type: The media type (the type and subtype, always lowercase). Example: 'application/json'

  • parameters: An object of the parameters in the media type (name of parameter always lowercase). Example: {charset: 'utf-8'}

fastContentTypeParse.safeParse(string)

const contentType = fastContentTypeParse.safeParse('application/json; charset=utf-8')

Parse a Content-Type header. It will not throw an Error if the header is invalid.

This will return an object with the following properties (examples are shown for the string 'application/json; charset=utf-8'):

  • type: The media type (the type and subtype, always lowercase). Example: 'application/json'

  • parameters: An object of the parameters in the media type (name of parameter always lowercase). Example: {charset: 'utf-8'}

In case the header is invalid, it will return an object with an empty string '' as type and an empty Object for parameters.

Benchmarks

node benchmarks/index.js
util#MIMEType x 1,206,781 ops/sec ±0.22% (96 runs sampled)
fast-content-type-parse#parse x 3,752,236 ops/sec ±0.42% (96 runs sampled)
fast-content-type-parse#safeParse x 3,675,645 ops/sec ±1.09% (94 runs sampled)
content-type#parse x 1,452,582 ops/sec ±0.37% (95 runs sampled)
busboy#parseContentType x 924,306 ops/sec ±0.43% (94 runs sampled)
Fastest is fast-content-type-parse#parse

Credits

Based on the npm package content-type.

License

Licensed under MIT.