internet-message-type
Version:
Parse RFC 822 ARPA Internet Text Messages types and bodies. Works well with InternetMessage.js.
39 lines (36 loc) • 1.07 kB
JavaScript
var MediaType = require("medium-type")
/**
* @example
* var InternetMessageType = require("internet-message-type")
*
* @class InternetMessageType
*/
/**
* Parse the `Content-Type` header of the given [InternetMessage][] with
* [MediumType][].
* Returns a new message without modifying the given one.
*
* [MediumType]: https://github.com/moll/js-medium-type
* [InternetMessage]: https://github.com/moll/js-internet-message
*
* @example
* 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"
*
* @method parse
* @param {Object} message
* @static
*/
exports.parse = function(msg) {
if (typeof msg["content-type"] != "string") return msg
msg = Object.create(msg)
msg["content-type"] = new MediaType(msg["content-type"])
return msg
}