Simple RFC 6838 media type parser and formatter for Deno, compatible with Browser. Based on https://github.com/jshttp/media-typer
.
This module will parse a given media type into it's component parts, like type, subtype, and suffix. A formatter is also provided to put them back together and the two can be combined to normalize media types into a canonical form.
If you are looking to parse the string that represents a media type and it's
parameters in HTTP (for example, the Content-Type
header), use the
content-type module.
import { format, test, parse, MediaType } from "https://deno.land/x/media_typer/mod.ts";
let obj = parse('image/svg+xml');
Parse a media type string. This will return an object with the following
properties (examples are shown for the string 'image/svg+xml'
):
-
type
: The type of the media type (always lower case). Example:'image'
-
subtype
: The subtype of the media type (always lower case). Example:'svg'
-
suffix
: The suffix of the media type (always lower case). Example:'xml'
If the given type string is invalid, then a TypeError
is thrown.
let obj = format({ type: 'image', subtype: 'svg', suffix: 'xml' });
Format an object into a media type string. This will return a string of the
mime type for the given object. For the properties of the object, see the
documentation for parse(string)
.
If any of the given object values are invalid, then a TypeError
is thrown.
let valid = test('image/svg+xml');
Validate a media type string. This will return true
is the string is a well-
formatted media type, or false
otherwise.
interface MediaType {
type: string;
subtype: string;
suffix?: string;
}