Comprehensive MIME type mapping API based on broofa/node-mime module.
- This module does not include a mime type database. Either supply your own, as described below, or include mime-db.
- No command line tool. Since no mime types are included this is not possible using this API only module.
Mime.prototype.load
has been removed to avoid dependency on Node File System.- Added 'glob' function to expand mime patterns by APIs-guru.
Install with npm (mime-db is optional):
npm install mime-lookup mime-db
mine-db is optional and only needed it you wish to use the mime-db mime-type database.
npm test
This module does not include the mime types database. Either supply your own or include the mime-db. Construct a new mime type lookup service by supplying a mime type database.
Using mime-db
var MimeLookup = require('mime-lookup');
var mime = new MimeLookup(require('mime-db'));
var MimeLookup = require('mime-lookup');
var mime = new MimeLookup(yourDb);
The mime-type database can be formatted two ways:
Simple
{
"text/x-some-format": ["x-sf", "x-sft", "x-sfml"],
"application/x-my-type": ["x-mt", "x-mtt"]
}
Like mime-db
{
"text/x-some-format": {
"source": "iana",
"extensions": ["x-sf", "x-sft", "x-sfml"]
},
"application/x-my-type": {
"source": "apache",
"extensions": ["x-mt", "x-mtt"]
}
}
Note in this case only the "extensions" property is used
Get the mime type associated with a file, if no mime type is found application/octet-stream
is returned. Performs a case-insensitive lookup using the extension in path
(the substring after the last '/' or '.'). E.g.
mime.lookup('file.txt'); // => 'text/plain'
mime.lookup('.TXT'); // => 'text/plain'
mime.lookup('htm'); // => 'text/html'
Sets the mime type returned when mime.lookup
fails to find the extension searched for
Get the default extension for type
mime.extension('text/html'); // => 'html'
mime.extension('application/octet-stream'); // => 'bin'
Map mime-type to charset
mime.charsets.lookup('text/plain'); // => 'UTF-8'
Add additional custom mime/extension mappings
mime.define({
'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],
'application/x-my-type': ['x-mt', 'x-mtt'],
// etc ...
});
mime.lookup('x-sft'); // => 'text/x-some-format'
The first entry in the extensions array is returned by mime.extension()
. E.g.
mime.extension('text/x-some-format'); // => 'x-sf'
This code is based on broofa/node-mime with additions from APIs-guru.
Original work Copyright (c) 2010 Benjamin Thomas, Robert Kieffer Modified work Copyright 2015 Jayson Harshbarger