@haensl/mimetypes
v1.1.0
Published
Simple JSON object holding mimetypes.
Downloads
24
Maintainers
Readme
@haensl/mimetypes
Simple JSON object holding MIME types.
Motivation
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.
Installation
Via npm
$ npm install -S @haensl/mimetypes
Via yarn
$ yarn add @haensl/mimetypes
Usage
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); }
Synopsis
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"
}