content
Installation:

npm: npm install @hapi/content

yarn: yarn add @hapi/content

Usage

content allows to parse HTTP Content-* headers, currently based on the rules established in both RFC 7231 Section 3.1.1.1 and RFC 6266 Section 4.1.

type(header)

Generates an object containing the associated mime-type and the boundary (if specified).

Content.type('application/json; some=property; and="another"');
// { mime: 'application/json' }

Content.type('application/json; boundary=asdf');
// { mime: 'application/json', boundary: 'asdf' }

If the header is invalid (malformed) or missing required data, such as a multipart/form-data header missing its boundary, it returns an HTTP Bad Request error.

disposition(header)

Generates an object containing the details related to the Content-Disposition header for the form-data content type with support for utf8 encoding.

Content.disposition('form-data; name="file"; filename=file.jpg');
// { name: 'file', filename: 'file.jpg' }

Content.disposition('form-data; name="file"; filename*=utf-8\'en\'with%20space');
// { name: 'file', filename: 'with space' }

If the header is invalid (malformed, invalid or missing properties) or is empty/missing, it returns an explanatory error.

Changelog

#13
Change module namespace
#9
Remove engines
#7
Throw on .type() if header is completely missing
#5
Skip processing parameters when content type is not multipart
#4
Throw directly from header processing
#3
Update deps
#2
Update deps
4.0.0
breaking changes
#1
Throw errors
#12
Commercial version of v3 branch
clipboard