Skip to content
forked from jshttp/mime-types

The ultimate javascript content-type utility.

License

Notifications You must be signed in to change notification settings

floms/mime-types

 
 

Repository files navigation

@onefloms/mime-types

NPM Version NPM Downloads Node.js Version Build Status Test Coverage

This package is a clone of jshttp/mime-types with the added compatibility for any JS environment including web. Also supports TypeScript out-of-the-box (no need to install @types/mime-types anymore)

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 var 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

This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install @onefloms/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

var { lookup, contentType} = require('@onefloms/mime-types');
// or
import { lookup, contentType } from '@onefloms/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'

var type = types[extension]

A map of content-types by extension.

[extensions...] = extensions[type]

A map of extensions by content-type.

License

MIT

About

The ultimate javascript content-type utility.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%