diff options
Diffstat (limited to 'includes/external/addressbook/node_modules/responselike/index.js')
-rw-r--r-- | includes/external/addressbook/node_modules/responselike/index.js | 39 |
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; + } +} |