Giter Club home page Giter Club logo

es-mime-types's Introduction

es-mime-types

Top language Vulnerabilities Version Node Version Last commit

mime-types rewrite in TypeScript with ESM and CommonJS targets

The ultimate javascript content-type utility.

Similar to the [email protected] 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

es-mime-types's People

Contributors

alii avatar

Stargazers

Andrew N avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.