# content-type

[![NPM Version](https://img.shields.io/npm/v/content-type.svg)](https://npmjs.org/package/content-type) [![NPM Downloads](https://img.shields.io/npm/dm/content-type.svg)](https://npmjs.org/package/content-type) [![Node.js Version](https://img.shields.io/node/v/content-type.svg)](http://nodejs.org/download/) [![Build Status](https://img.shields.io/travis/jshttp/content-type/master.svg)](https://travis-ci.org/jshttp/content-type) [![Test Coverage](https://img.shields.io/coveralls/jshttp/content-type/master.svg)](https://coveralls.io/r/jshttp/content-type)

Create and parse HTTP Content-Type header according to RFC 7231

## Installation

```sh
$ npm install content-type
```

## API

```js
var contentType = require('content-type')
```

### contentType.parse(string)

```js
var obj = contentType.parse('image/svg+xml; charset=utf-8')
```

Parse a content type string. This will return an object with the following properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`):

* `type`: The media type (the type and subtype, always lower case). Example: `'image/svg+xml'`
* `parameters`: An object of the parameters in the media type (name of parameter always lower case). Example: `{charset: 'utf-8'}`

Throws a `TypeError` if the string is missing or invalid.

### contentType.parse(req)

```js
var obj = contentType.parse(req)
```

Parse the `content-type` header from the given `req`. Short-cut for `contentType.parse(req.headers['content-type'])`.

Throws a `TypeError` if the `Content-Type` header is missing or invalid.

### contentType.parse(res)

```js
var obj = contentType.parse(res)
```

Parse the `content-type` header set on the given `res`. Short-cut for `contentType.parse(res.getHeader('content-type'))`.

Throws a `TypeError` if the `Content-Type` header is missing or invalid.

### contentType.format(obj)

```js
var str = contentType.format({type: 'image/svg+xml'})
```

Format an object into a content type string. This will return a string of the content type for the given object with the following properties (examples are shown that produce the string `'image/svg+xml; charset=utf-8'`):

* `type`: The media type (will be lower-cased). Example: `'image/svg+xml'`
* `parameters`: An object of the parameters in the media type (name of the parameter will be lower-cased). Example: `{charset: 'utf-8'}`

Throws a `TypeError` if the object contains an invalid type or parameter names.

## License

[MIT](https://github.com/pingponglabs/mediamagic-platform/blob/main/services/graphql-gateway/node_modules/content-type/LICENSE/README.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mediamagic.dev/product-docs/services/graphql-gateway/node_modules/content-type.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
