UNPKG

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