README.md

MIME.Types
==========

> **A toolbelt for working with MIME types in Elixir.**

This was extracted from [Plug](https://github.com/elixir-lang/plug) so that other projects can make use of it.

Installation
------------

To install through Hex:

  1. Add `mime_types` to your list of dependencies in `mix.exs`:

        def deps do
          [{:mime_types, "~> 0.1.0"}]
        end

  2. Add any custom types you want to your `config/config.exs`:

        config :mime_types, custom: %{
          "application/vnd.api+json" => ["json-api"]
        }

Usage
-----

The `MIME` module has a minimal surface area:

- [valid?/1](https://hexdocs.pm/mime_types/MIME.html#valid?/1)

  Returns whether a MIME type is registered.
  
- [type/1](https://hexdocs.pm/mime_types/MIME.html#type/1)

  Returns the MIME type associated with a file extension.
  
- [path/1](https://hexdocs.pm/mime_types/MIME.html#path/1)
  
  Guesses the MIME type based on the path’s extension.

- [types/0](https://hexdocs.pm/mime_types/MIME.html#types/0)

  List all registered MIME types.
  
- [extensions/0](https://hexdocs.pm/mime_types/MIME.html#extensions/0)

  List all file extensions registered with MIME types.
  
- [mapping/0](https://hexdocs.pm/mime_types/MIME.html#mapping/0)

  Show the complete MIME type mapping.
  
### MIME.Types

Additionaly, you can `use MIME.Types` to [generate your own registry](https://hexdocs.pm/mime_types/MIME.Types.html). Tack on a Map or Keyword list to supply it with extra types.

Contributing
------------

PRs welcome and appreciated [here](https://github.com/christhekeele/mime_types/pulls)!