0.1.4 • Published 2 years ago

es-mime-types v0.1.4

Weekly downloads
13,238
License
MIT
Repository
-
Last release
2 years ago

es-mime-types

Top language Vulnerabilities Version Node Version Last commit

mime-types rewrite in TypeScript compiled to ESM

The ultimate javascript content-type utility.

Similar to the mime@1.x module, except:

  • No fallbacks. Instead of naively returning the first available type, mime-types simply returns false, so do const type = mime.lookup('unrecognized') || 'application/octet-stream'.
  • No new Mime() business, so you could do var lookup = require('mime-types').lookup.
  • No .define() functionality
  • Bug fixes for .lookup(path)

Otherwise, the API is compatible with mime 1.x.

Install

pnpm i es-mime-types

Adding Types

All mime types are based on mime-db, so open a PR there if you'd like to add mime types.

API

import { lookup, contentType, extension, charset, types } from 'es-mime-types'

All functions return false if input is invalid or not found.

lookup(path)

Lookup the content-type associated with a file.

lookup('json') // 'application/json'
lookup('.md') // 'text/markdown'
lookup('file.html') // 'text/html'
lookup('folder/file.js') // 'application/javascript'
lookup('folder/.htaccess') // false
lookup('cats') // false

contentType(type)

Create a full content-type header given a content-type or extension. When given an extension, 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, charset is used to get the default charset and add to the returned content-type.

contentType('markdown') // 'text/x-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'

// from a full path
contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8'

extension(type)

Get the default extension for a content-type.

extension('application/octet-stream') // 'bin'

charset(type)

Lookup the implied default charset of a content-type.

charset('text/markdown') // 'UTF-8'

types[extension]

A map of extensions by content-type.

License

MIT © v1rtl

0.1.4

2 years ago

0.1.3

3 years ago

0.1.0

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.0.16

4 years ago

0.0.15

4 years ago

0.0.14

4 years ago

0.0.12

4 years ago

0.0.13

4 years ago

0.0.11

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago