@polka/send-type
An HTTP response helper that detects Content-Type
s & handles them accordingly — not limited to Polka!
For a simpler, bare-bones alternative, check out @polka/send
instead~
Install
$ npm install --save @polka/send-type
Usage
const { createReadStream } = require('fs');
const send = require('@polka/send-type');
module.exports = function (req, res) {
if (!req.getHeader('authorization')) {
return send(res, 401, { error:'Token required!' });
}
let file = createReadStream('massive.mp4');
send(res, 206, file, { 'Content-Type': 'video/mp4' });
}
API
res
Type: ServerReponse
The outgoing HTTP response.
code
Type: Number
Default: 200
The statusCode
for your response.
data
Type: String
Default: ''
The body
for your response. Defaults to the statusText
for the given statusCode
.
See Data Detections for special behaviors.
Type: Object
Default: {}
The headers
for your response.
See Data Detections for special behaviors.
Data Detections
The following operations will be performed for the following data types:
Important: If this is too much magic for you, check out @polka/send
instead!
Buffers
- Sets
Content-Type
to 'application/octet-stream'
, unless one exists in headers
- Sets
Content-Length
Objects
- Casts
data
to string via JSON.stringify
- Sets
Content-Type
to 'application/json; charset=utf-8'
- Sets
Content-Length
Streams
- Sets
Content-Type
to 'application/octet-stream'
, unless one exists in headers
- Pipes
data
into the res
directly
Support
Any issues or questions can be sent to the Polka repo, but please specify that you are using @polka/send-type
.
License
MIT © Luke Edwards