Simple JSON object holding MIME types.
This is a simple JSON object collecting MIME types. The rationale for having them in a module is manifold including but not limited to consitency, accuracy, reuse, extensibility, future-proofing and collaboration.
At it's most basic level, this module tries to eliminate magic strings. Magic strings are magical in a bad way, they cast no spells, just confusion and potential bugs.
This MIME types collection is (very) far from complete - in fact it only contains the most commonly used mimetypes at the moment. However, the goal is to collect more as they become relevant to Node developers.
Please feel free to request addition if you need a MIME type not included in this module.
$ npm install -S @haensl/mimetypes
$ yarn add @haensl/mimetypes
-
Use mime types in your projects:
ESM, i.e.
import
import { json } from '@haensl/mimetypes'; // ... const route = async (ctx) => { // some data from somewhere const data = await getData(); // Use the json mimetype ctx.set(headers.contentType, json); ctx.body = JSON.stringify(data); }
CJS, i.e.
require
const { json } = require('@haensl/mimetypes'); // ... const route = async (ctx) => { // some data from somewhere const data = await getData(); // Use the json mimetype ctx.set(headers.contentType, json); ctx.body = JSON.stringify(data); }
The mimetypes
object is a simple JSON object that maps to strings:
{
"css": "text/css",
"html": "text/html",
"ico": "image/x-icon",
"js": "text/javascript",
"jpg": "image/jpeg",
"json": "application/json",
"jsonLd": "application/ld+json",
"gif": "image/gif",
"mp4": "video/mp4",
"png": "image/png",
"svg": "image/svg+xml",
"text": "text/plain",
"webm": "video/webm",
"webp": "image/webp",
"xml": "application/xml"
}