summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/responselike/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/external/addressbook/node_modules/responselike/index.js')
-rw-r--r--includes/external/addressbook/node_modules/responselike/index.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/responselike/index.js b/includes/external/addressbook/node_modules/responselike/index.js
new file mode 100644
index 0000000..6e2d40b
--- /dev/null
+++ b/includes/external/addressbook/node_modules/responselike/index.js
@@ -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;
+ }
+}