@alshdavid/mime-types
Version:
The ultimate javascript content-type utility.
51 lines (50 loc) • 1.62 kB
JavaScript
import { MimeTypesParser } from './mime-types-parser.js';
let mimeTypesParser;
/**
* @description
* Lookup the content-type associated with a file.
* @param path
* e.g. 'json', '.md', 'file.html', 'folder/file.js'
*/
export function lookup(path) {
if (!mimeTypesParser)
mimeTypesParser = new MimeTypesParser();
return mimeTypesParser.lookup(path);
}
/**
* @description
* Create a full content-type header given a content-type or extension.
* When given an extension, mime.lookup is used to get the matching content-type,
* otherwise the given content-type is used. Then if the content-type does not
* already have a charset parameter, mime.charset is used to get the default
* charset and add to the returned content-type.
* @param query
* e.g. 'markdown', 'file.json', 'text/html', 'text/html; charset=iso-8859-1'
*/
export function contentType(query) {
if (!mimeTypesParser)
mimeTypesParser = new MimeTypesParser();
return mimeTypesParser.contentType(query);
}
/**
* @description
* Get the default extension for a content-type.
* @param mimeType
* e.g. extension('application/octet-stream') -> 'bin'
*/
export function extension(mimeType) {
if (!mimeTypesParser)
mimeTypesParser = new MimeTypesParser();
return mimeTypesParser.extension(mimeType);
}
/**
* @description
* Lookup the implied default charset of a content-type.
* @param mimeType
* e.g. charset('text/markdown') -> 'UTF-8'
*/
export function charset(mimeType) {
if (!mimeTypesParser)
mimeTypesParser = new MimeTypesParser();
return mimeTypesParser.charset(mimeType);
}