jshttp/content-type

Create and parse HTTP Content-Type header

146

stars

137

commits

TypeScript

primary language

Aug 28, 2026

updated

content-type
http
javascript
nodejs

README

content-type

NPM version NPM downloads Build status Build coverage License

Create and parse HTTP Content-Type header.

Installation

npm install content-type

API

import * as contentType from "content-type";

contentType.parse(string, options?)

const obj = contentType.parse("image/svg+xml; charset=utf-8");

Parse a Content-Type header. This will return an object with the following properties (examples are shown for the string 'image/svg+xml; charset=utf-8'):

  • type: The media type. Example: 'image/svg+xml'.
  • parameters: An object of the parameters in the media type (parameter name is always lower case). Example: {charset: 'utf-8'}.

The parser is lenient and does not error. You should validate type and parameters before trusting them.

Options

  • parameters (default: true): Set to false to skip parameters.
  • comma (default: false): Set to true to stop on a comma. This can be used to parse the media range in an Accept header.
  • start (default: 0): Set index to start parsing from.

contentType.format(obj)

const str = contentType.format({
  type: "image/svg+xml",
  parameters: { charset: "utf-8" },
});

Format an object into a Content-Type header. This will return a string of the content type for the given object with the following properties (examples are shown that produce the string 'image/svg+xml; charset=utf-8'):

  • type: The media type. Example: 'image/svg+xml'.
  • parameters: An optional object of the parameters in the media type. Example: {charset: 'utf-8'}.

Throws a TypeError if the object contains an invalid type or parameter names.

License

MIT

Contributors

dougwilson

111 commits

blakeembrey

14 commits

UlisesGascon

2 commits

carpasse

2 commits

jshttp/content-type

Create and parse HTTP Content-Type header

146

stars

137

commits

TypeScript

primary language

Aug 28, 2026

updated

content-type
http
javascript
nodejs

README

content-type

NPM version NPM downloads Build status Build coverage License

Create and parse HTTP Content-Type header.

Installation

npm install content-type

API

import * as contentType from "content-type";

contentType.parse(string, options?)

const obj = contentType.parse("image/svg+xml; charset=utf-8");

Parse a Content-Type header. This will return an object with the following properties (examples are shown for the string 'image/svg+xml; charset=utf-8'):

  • type: The media type. Example: 'image/svg+xml'.
  • parameters: An object of the parameters in the media type (parameter name is always lower case). Example: {charset: 'utf-8'}.

The parser is lenient and does not error. You should validate type and parameters before trusting them.

Options

  • parameters (default: true): Set to false to skip parameters.
  • comma (default: false): Set to true to stop on a comma. This can be used to parse the media range in an Accept header.
  • start (default: 0): Set index to start parsing from.

contentType.format(obj)

const str = contentType.format({
  type: "image/svg+xml",
  parameters: { charset: "utf-8" },
});

Format an object into a Content-Type header. This will return a string of the content type for the given object with the following properties (examples are shown that produce the string 'image/svg+xml; charset=utf-8'):

  • type: The media type. Example: 'image/svg+xml'.
  • parameters: An optional object of the parameters in the media type. Example: {charset: 'utf-8'}.

Throws a TypeError if the object contains an invalid type or parameter names.

License

MIT

Contributors

dougwilson

111 commits

blakeembrey

14 commits

UlisesGascon

2 commits

carpasse

2 commits

Languages

TypeScript

100.0%