Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/christhekeele/elixir-mime

A toolbelt for working with MIME types in Elixir.
https://github.com/christhekeele/elixir-mime

Last synced: about 2 months ago
JSON representation

A toolbelt for working with MIME types in Elixir.

Awesome Lists containing this project

README

        

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)!