media_types
A module that assists in resolving media types and extensions. It consumes a media type database from mime-db and provides API access to the information.
Usage
lookup(path)
Lookup the content type associated with a file. The path can be just the
extension or the full path name. If the content type cannot be determined the
function returns undefined
:
import { lookup } from "https://deno.land/x/media_types/mod.ts";
lookup("json"); // "application/json"
lookup(".md"); // "text/markdown"
lookup("folder/file.js"); // "application/javascript"
lookup("folder/.htaccess"); // undefined
contentType(type)
Return a full Content-Type
header value for a given content type or extension.
When an extension is used, lookup()
is used to resolve the content type first.
A default charset is added if not present. The function will return undefined
if the content type cannot be resolved:
import { contentType } from "https://deno.land/x/media_types/mod.ts";
import * as path from "https://deno.land/std/path/mod.ts";
contentType("markdown"); // "text/markdown; charset=utf-8"
contentType("file.json"); // "application/json; charset=utf-8"
contentType("text/html"); // "text/html; charset=utf-8"
contentType("text/html; charset=iso-8859-1"); // "text/html; charset=iso-8859-1"
contentType(path.extname("/path/to/file.json")); // "application/json; charset=utf-8"
extension(type)
Return a default extension for a given content type. If there is not an
appropriate extension, undefined
is returned:
import { extension } from "https://deno.land/x/media_types/mod.ts";
extension("application/octet-stream"); // "bin"
charset(type)
Lookup the implied default charset for a given content type. If the content type
cannot be resolved, undefined
is returned:
import { charset } from "https://deno.land/x/media_types/mod.ts";
charset("text/markdown"); // "UTF-8"
extensions
A Map
of extensions by content type, in priority order:
import { extensions } from "https://deno.land/x/media_types/mod.ts";
extensions.get("application/javascript"); // [ "js", "mjs" ]
types
A Map
of content types by extension:
import { types } from "https://deno.land/x/media_types/mod.ts";
types.get("js"); // "application/javascript"
Adapted from mime-types and mime-db.
MIT License.