diff options
Diffstat (limited to 'deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js')
-rw-r--r-- | deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js new file mode 100644 index 0000000000..6fb050d74c --- /dev/null +++ b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js @@ -0,0 +1,71 @@ +'use strict' + +/** + * response.js + * + * Response class provides content decoding + */ + +const STATUS_CODES = require('http').STATUS_CODES +const Headers = require('./headers.js') +const Body = require('./body.js') +const clone = Body.clone + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor (body, opts) { + if (!opts) opts = {} + Body.call(this, body, opts) + + this.url = opts.url + this.status = opts.status || 200 + this.statusText = opts.statusText || STATUS_CODES[this.status] + + this.headers = new Headers(opts.headers) + + Object.defineProperty(this, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true + }) + } + + /** + * Convenience property representing if the request ended normally + */ + get ok () { + return this.status >= 200 && this.status < 300 + } + + /** + * Clone this response + * + * @return Response + */ + clone () { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok + }) + } +} + +Body.mixIn(Response.prototype) + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'ResponsePrototype', + writable: false, + enumerable: false, + configurable: true +}) +module.exports = Response |