-
Notifications
You must be signed in to change notification settings - Fork 2
/
README
96 lines (62 loc) · 2.9 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
This module provides basic functions for handling mime-types. It can
handle matching mime-types against a list of media-ranges. See section
14.1 of the HTTP specification [RFC 2616] for a complete explanation.
<http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1>
A port to JavaScript of Joe Gregorio's MIME-Type Parser:
<http://code.google.com/p/mimeparse/>
Ported by J. Chris Anderson <jchris@apache.org>, targeting the
Spidermonkey runtime.
Ported to Chiron, Narwhal, Node by Kris Kowal.
<http://github.com/kriskowal/mimeparse>
Installation
============
Install <http://github.com/isaacs/npm>
npm install mimeparse
The API
=======
parseMimeType(mimeType)
Carves up a mime-type and returns an Array of the
[type, subtype, params] where "params" is a Hash of all
the parameters for the media range.
For example, the media range "application/xhtml;q=0.5" would
get parsed into::
["application", "xhtml", { "q" : "0.5" }]
parseMediaRange(range)
Carves up a media range and returns an Array of the
[type, subtype, params] where "params" is a Object with
all the parameters for the media range.
For example, the media range "application/*;q=0.5" would
get parsed into::
["application", "*", { "q" : "0.5" }]
In addition this function also guarantees that there
is a value for "q" in the params dictionary, filling it
in with a proper default if necessary.
fitnessAndQualityParsed(mimeType, parsedRanges)
Find the best match for a given mime-type against
a list of media_ranges that have already been
parsed by parseMediaRange(). Returns an array of
the fitness value and the value of the 'q' quality
parameter of the best match, or (-1, 0) if no match
was found. Just as for qualityParsed(), 'parsed_ranges'
must be a list of parsed media ranges.
qualityParsed(mimeType, parsedRanges)
Find the best match for a given mime-type against
a list of media_ranges that have already been
parsed by parseMediaRange(). Returns the
'q' quality parameter of the best match, 0 if no
match was found. This function bahaves the same as quality()
except that 'parsedRanges' must be a list of
parsed media ranges.
quality(mimeType, ranges)
Returns the quality 'q' of a mime-type when compared
against the media-ranges in ranges. For example::
>>> quality('text/html','text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, *\/*;q=0.5')
0.7
bestMatch(supported, header)
Takes a list of supported mime-types and finds the best
match for all the media-ranges listed in header. The value of
header must be a string that conforms to the format of the
HTTP Accept: header. The value of 'supported' is a list of
mime-types::
>>> bestMatch(['application/xbel+xml', 'text/xml'], 'text/*;q=0.5,*\/*; q=0.1')
'text/xml'