https://github.com/oboard/mimetype
Mime types for MoonBit
https://github.com/oboard/mimetype
Last synced: 5 months ago
JSON representation
Mime types for MoonBit
- Host: GitHub
- URL: https://github.com/oboard/mimetype
- Owner: oboard
- License: apache-2.0
- Created: 2024-08-02T18:01:17.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-10-18T12:38:17.000Z (8 months ago)
- Last Synced: 2025-10-19T07:46:01.996Z (8 months ago)
- Language: MoonBit
- Size: 38.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# oboard/mimetype
An API for MIME type information.
- All `mime-db` types
## Installation
```bash
moon add oboard/mimetype
```
## Quick Start
For the full version (800+ MIME types, 1,000+ extensions):
```moonbit
let mime = @mimetype.new()
mime.get_type("txt") // ⇨ "text/plain"
mime.get_extension("text/plain") // ⇨ Some("txt")
```
## API
### `mime.get_type(path_or_extension)`
Get mime type for the given file path or extension. E.g.
```moonbit
mime.get_type("js") // ⇨ "text/javascript"
mime.get_type("json") // ⇨ "application/json"
mime.get_type("txt") // ⇨ "text/plain"
mime.get_type("dir/text.txt") // ⇨ "text/plain"
mime.get_type("dir\\text.txt") // ⇨ "text/plain"
mime.get_type(".text.txt") // ⇨ "text/plain"
mime.get_type(".txt") // ⇨ "text/plain"
```
`None` is returned in cases where an extension is not detected or recognized
```moonbit
mime.get_type("foo/txt") // ⇨ None
mime.get_type("bogus_type") // ⇨ None
```
### `mime.get_extension(type)`
Get file extension for the given mime type. Charset options (often included in Content-Type headers) are ignored.
```moonbit
mime.get_extension("text/plain") // ⇨ Some("txt")
mime.get_extension("application/json") // ⇨ Some("json")
mime.get_extension("text/html; charset=utf8") // ⇨ Some("html")
```
### `mime.get_all_extensions(type)`
Get all file extensions for the given mime type.
```moonbit
mime.get_all_extensions("image/jpeg") // ⇨ ["jpeg", "jpg", "jpe"]
```