content-type-parser

Parse the value of the Content-Type header

Use whatwg-mimetype instead
Last updated 8 years ago by domenic .
WTFPL · Repository · Bugs · Original npm · Tarball · package.json
$ npm install content-type-parser 
SYNC missed versions from official npm registry.

Parse Content-Type Header Strings

This package will parse the Content-Type header field into an introspectable data structure, whose parameters can be manipulated:

const contentTypeParser = require("content-type-parser");

const contentType = contentTypeParser(`Text/HTML;Charset="utf-8"`);

console.assert(contentType.toString() === "text/html;charset=utf-8");

console.assert(contentType.type === "text");
console.assert(contentType.subtype === "html");
console.assert(contentType.get("charset") === "utf-8");

contentType.set("charset", "windows-1252");
console.assert(contentType.get("charset") === "windows-1252");
console.assert(contentType.toString() === "text/html;charset=windows-1252");

console.assert(contentType.isHTML() === true);
console.assert(contentType.isXML() === false);
console.assert(contentType.isText() === true);

Note how parsing will lowercase the type, subtype, and parameter name tokens (but not parameter values).

If the passed string cannot be parsed as a content-type, contentTypeParser will return null.

ContentType instance API

This package's main module's default export will return an instance of the ContentType class, which has the following public APIs:

Properties

  • type: the top-level media type, e.g. "text"
  • subtype: the subtype, e.g. "html"
  • parameterList: an array of { separator, key, value } pairs representing the parameters. The separator field contains any whitespace, not just the ; character.

Parameter manipulation

In general you should not directly manipulate parameterList. Instead, use the following APIs:

  • get("key"): returns the value of the parameter with the given key, or undefined if no such parameter is present
  • set("key", "value"): adds the given key/value pair to the parameter list, or overwrites the existing value if an entry already existed

Both of these will lowercase the keys.

MIME type tests

  • isHTML(): returns true if this instance's MIME type is the HTML MIME type, "text/html"
  • isXML(): returns true if this instance's MIME type is an XML MIME type
  • isText(): returns true if this instance's top-level media type is "text"

Serialization

  • toString() will return a canonicalized representation of the content-type, re-built from the parsed components

Credits

This package was originally based on the excellent work of @nicolashenry, in jsdom. It has since been pulled out into this separate package.

Current Tags

  • 1.0.2                                ...           latest (7 years ago)

3 Versions

  • 1.0.2 [deprecated]           ...           7 years ago
  • 1.0.1 [deprecated]           ...           8 years ago
  • 1.0.0 [deprecated]           ...           8 years ago
Maintainers (1)
Downloads
Total 2
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (2)
Dependents (2)

© 2010 - cnpmjs.org x YWFE | Home | YWFE