Init
This commit is contained in:
39
node_modules/responselike/index.js
generated
vendored
Normal file
39
node_modules/responselike/index.js
generated
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
import {Readable as ReadableStream} from 'node:stream';
|
||||
import lowercaseKeys from 'lowercase-keys';
|
||||
|
||||
export default class Response extends ReadableStream {
|
||||
statusCode;
|
||||
headers;
|
||||
body;
|
||||
url;
|
||||
|
||||
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 Uint8Array)) {
|
||||
throw new TypeError('Argument `body` should be a buffer');
|
||||
}
|
||||
|
||||
if (typeof url !== 'string') {
|
||||
throw new TypeError('Argument `url` should be a string');
|
||||
}
|
||||
|
||||
super({
|
||||
read() {
|
||||
this.push(body);
|
||||
this.push(null);
|
||||
},
|
||||
});
|
||||
|
||||
this.statusCode = statusCode;
|
||||
this.headers = lowercaseKeys(headers);
|
||||
this.body = body;
|
||||
this.url = url;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user