aboutsummaryrefslogtreecommitdiff
path: root/node_modules/responselike/src/index.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-04-09 16:39:03 +0200
committerMinteck <contact@minteck.org>2022-04-09 16:40:02 +0200
commit0f8967b9113d698cdeb2d05ca85d2d9a80461c24 (patch)
tree00664ddd9c55a2c33631fd1bd33e556cea9c67e5 /node_modules/responselike/src/index.js
parentdac03ac82bc0f8044a4b339c27b5390e4dcecf2f (diff)
downloadvoicer-trunk.tar.gz
voicer-trunk.tar.bz2
voicer-trunk.zip
CommitHEADtrunk
Diffstat (limited to 'node_modules/responselike/src/index.js')
-rw-r--r--node_modules/responselike/src/index.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/node_modules/responselike/src/index.js b/node_modules/responselike/src/index.js
new file mode 100644
index 0000000..b17b481
--- /dev/null
+++ b/node_modules/responselike/src/index.js
@@ -0,0 +1,34 @@
+'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;