internet-message-type
Version:
Parse RFC 822 ARPA Internet Text Messages types and bodies. Works well with InternetMessage.js.
99 lines (73 loc) • 3.32 kB
Markdown
InternetMessageType.js
======================
[![NPM version][npm-badge]](http://badge.fury.io/js/internet-message-type)
[npm-badge]: https://badge.fury.io/js/internet-message-type.png
**InternetMessageType.js** is a library to **parse** the **Content-Type** and
**body** of [RFC 733 (ARPA Network Text Message)][rfc733], [RFC 822 (ARPA
Internet Text Messages)][rfc822] and [RFC 2822 (Internet Message
Format)][rfc2822] objects. Works well with
[InternetMessage.js][InternetMessage].
[rfc733]: https://tools.ietf.org/html/rfc733
[rfc822]: https://tools.ietf.org/html/rfc822
[rfc2822]: https://tools.ietf.org/html/rfc2822
[InternetMessage]: https://github.com/moll/js-internet-message
Installing
----------
```sh
npm install internet-message-type
```
InternetMessageType.js follows [semantic versioning](http://semver.org/), so
feel free to depend on its major version with something like `>= 1.0.0 < 2`
(a.k.a `^1.0.0`).
Using
-----
```javascript
var InternetMessage = require("internet-message")
var InternetMessageType = require("internet-message-type")
var headers = {"Content-Type": "application/json"}
var msg = new InternetMessage(headers, '{"name":"John","age":42}')
var type = InternetMessageType.parse(msg)["content-type"]
type.type // => "application"
type.subtype // => "json"
```
### Parse a message, its type and body
All [InternetMessage.js][InternetMessage] and InternetMessageType.js parse
functions are composable. Just use any compose helper, e.g. the one in
Underscore.js, to create a single function:
```javascript
var _ = require("underscore")
var parse = _.compose(
require("internet-message-type/body").parse,
require("internet-message-type").parse,
require("internet-message").parse
)
```
API
---
For extended documentation on all functions, please see the
[InternetMessageType.js API Documentation][api].
[api]: https://github.com/moll/js-internet-message-type/blob/master/doc/API.md
### [InternetMessageType](https://github.com/moll/js-internet-message-type/blob/master/doc/API.md#InternetMessageType)
- [parse](https://github.com/moll/js-internet-message-type/blob/master/doc/API.md#InternetMessageType.parse)(message)
### [InternetMessageBody](https://github.com/moll/js-internet-message-type/blob/master/doc/API.md#InternetMessageBody)
- [parse](https://github.com/moll/js-internet-message-type/blob/master/doc/API.md#InternetMessageBody.parse)(message)
License
-------
InternetMessageType.js is released under a *Lesser GNU Affero General Public License*, which
in summary means:
- You **can** use this program for **no cost**.
- You **can** use this program for **both personal and commercial reasons**.
- You **do not have to share your own program's code** which uses this program.
- You **have to share modifications** (e.g. bug-fixes) you've made to this
program.
For more convoluted language, see the `LICENSE` file.
About
-----
**[Andri Möll][moll]** typed this and the code.
[Monday Calendar][monday] supported the engineering work.
If you find InternetMessageType.js needs improving, please don't hesitate to
type to me now at [andri@dot.ee][email] or [create an issue online][issues].
[email]: mailto:andri@dot.ee
[issues]: https://github.com/moll/js-internet-message-type/issues
[moll]: http://themoll.com
[monday]: https://mondayapp.com