What is mime-db?
The mime-db package is a comprehensive database of MIME types based on the mime-types npm package. It provides an API to access MIME type definitions, which are compiled from various sources. It is often used to look up MIME types based on file extensions or vice versa.
What are mime-db's main functionalities?
Lookup MIME type for a given file extension
This feature allows you to get the MIME type for a specific file extension. In the code sample, we are looking up the MIME type for JSON files.
const mimeDb = require('mime-db');
const mimeType = mimeDb['json'].type;
Get extensions for a given MIME type
This feature enables you to retrieve the file extensions associated with a particular MIME type. In the code sample, we are getting the extensions for 'application/json'.
const mimeDb = require('mime-db');
const extensions = mimeDb['application/json'].extensions;
Access MIME type data
This feature provides access to the data associated with a specific MIME type, including the source of the information, charset, and whether it's compressible. The code sample demonstrates how to access the data for 'application/json'.
const mimeDb = require('mime-db');
const mimeData = mimeDb['application/json'];
Other packages similar to mime-db
mime-types
The mime-types package is a lightweight version of mime-db that provides utility functions to work with MIME types, such as looking up MIME types and extensions. It is built on top of mime-db and offers a simpler API for common use cases.
mime
The mime package is another popular alternative that allows users to look up MIME types based on file extensions and vice versa. It offers a more limited dataset compared to mime-db but includes a simple API for the most common MIME type operations.
mime-db
This is a database of all mime types.
It consistents of a single, public JSON file and does not include any logic,
allowing it to remain as unopinionated as possible with an API.
It aggregates data from the following sources:
Usage
npm i mime-db
var db = require('mime-db');
var data = db['application/javascript'];
If you're crazy enough to use this in the browser,
you can just grab the JSON file:
https://cdn.rawgit.com/jshttp/mime-db/master/db.json
Data Structure
The JSON file is a map lookup for lowercased mime types.
Each mime type has the following properties:
.source
- where the mime type is defined.
If not set, it's probably a custom media type.
.extensions[]
- known extensions associated with this mime type..compressible
- whether a file of this type is can be gzipped..charset
- the default charset associated with this type, if any.
If unknown, every property could be undefined
.
Repository Structure
scripts
- these are scripts to run to build the databasesrc/
- this is a folder of files created from remote sources like Apache and IANAlib/
- this is a folder of our own custom sources and db, which will be merged into db.json
db.json
- the final built JSON file for end-user usage
Contributing
To edit the database, only make PRs against files in the lib/
folder.
To update the build, run npm run update
.