1.1.0 • Published 10 months ago

@haensl/mimetypes v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@haensl/mimetypes

Simple JSON object holding MIME types.

NPM

npm version CircleCI

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

  1. Install @haensl/mimetypes

  2. Use mime types in your projects:

ESM, i.e. `import`

```javascript
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`

```javascript
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"
}

Changelog

License