mirror of
https://github.com/crazy-max/ghaction-upx.git
synced 2024-11-26 12:16:08 -07:00
35 lines
823 B
JavaScript
35 lines
823 B
JavaScript
|
'use strict';
|
||
|
|
||
|
const Readable = require('stream').Readable;
|
||
|
const lowercaseKeys = require('lowercase-keys');
|
||
|
|
||
|
class Response extends Readable {
|
||
|
constructor(statusCode, headers, body, url) {
|
||
|
if (typeof statusCode !== 'number') {
|
||
|
throw new TypeError('Argument `statusCode` should be a number');
|
||
|
}
|
||
|
if (typeof headers !== 'object') {
|
||
|
throw new TypeError('Argument `headers` should be an object');
|
||
|
}
|
||
|
if (!(body instanceof Buffer)) {
|
||
|
throw new TypeError('Argument `body` should be a buffer');
|
||
|
}
|
||
|
if (typeof url !== 'string') {
|
||
|
throw new TypeError('Argument `url` should be a string');
|
||
|
}
|
||
|
|
||
|
super();
|
||
|
this.statusCode = statusCode;
|
||
|
this.headers = lowercaseKeys(headers);
|
||
|
this.body = body;
|
||
|
this.url = url;
|
||
|
}
|
||
|
|
||
|
_read() {
|
||
|
this.push(this.body);
|
||
|
this.push(null);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = Response;
|