1 | ;
|
2 |
|
3 | /**
|
4 | * Module dependencies.
|
5 | */
|
6 | var util = require('util');
|
7 |
|
8 | var Stream = require('stream');
|
9 |
|
10 | var ResponseBase = require('../response-base');
|
11 | /**
|
12 | * Expose `Response`.
|
13 | */
|
14 |
|
15 |
|
16 | module.exports = Response;
|
17 | /**
|
18 | * Initialize a new `Response` with the given `xhr`.
|
19 | *
|
20 | * - set flags (.ok, .error, etc)
|
21 | * - parse header
|
22 | *
|
23 | * @param {Request} req
|
24 | * @param {Object} options
|
25 | * @constructor
|
26 | * @extends {Stream}
|
27 | * @implements {ReadableStream}
|
28 | * @api private
|
29 | */
|
30 |
|
31 | function Response(request) {
|
32 | Stream.call(this);
|
33 | this.res = request.res;
|
34 | var res = this.res;
|
35 | this.request = request;
|
36 | this.req = request.req;
|
37 | this.text = res.text;
|
38 | this.body = res.body === undefined ? {} : res.body;
|
39 | this.files = res.files || {};
|
40 | this.buffered = request._resBuffered;
|
41 | this.headers = res.headers;
|
42 | this.header = this.headers;
|
43 |
|
44 | this._setStatusProperties(res.statusCode);
|
45 |
|
46 | this._setHeaderProperties(this.header);
|
47 |
|
48 | this.setEncoding = res.setEncoding.bind(res);
|
49 | res.on('data', this.emit.bind(this, 'data'));
|
50 | res.on('end', this.emit.bind(this, 'end'));
|
51 | res.on('close', this.emit.bind(this, 'close'));
|
52 | res.on('error', this.emit.bind(this, 'error'));
|
53 | }
|
54 | /**
|
55 | * Inherit from `Stream`.
|
56 | */
|
57 |
|
58 |
|
59 | util.inherits(Response, Stream); // eslint-disable-next-line new-cap
|
60 |
|
61 | ResponseBase(Response.prototype);
|
62 | /**
|
63 | * Implements methods of a `ReadableStream`
|
64 | */
|
65 |
|
66 | Response.prototype.destroy = function (error) {
|
67 | this.res.destroy(error);
|
68 | };
|
69 | /**
|
70 | * Pause.
|
71 | */
|
72 |
|
73 |
|
74 | Response.prototype.pause = function () {
|
75 | this.res.pause();
|
76 | };
|
77 | /**
|
78 | * Resume.
|
79 | */
|
80 |
|
81 |
|
82 | Response.prototype.resume = function () {
|
83 | this.res.resume();
|
84 | };
|
85 | /**
|
86 | * Return an `Error` representative of this response.
|
87 | *
|
88 | * @return {Error}
|
89 | * @api public
|
90 | */
|
91 |
|
92 |
|
93 | Response.prototype.toError = function () {
|
94 | var req = this.req;
|
95 | var method = req.method;
|
96 | var path = req.path;
|
97 | var message = "cannot ".concat(method, " ").concat(path, " (").concat(this.status, ")");
|
98 | var error = new Error(message);
|
99 | error.status = this.status;
|
100 | error.text = this.text;
|
101 | error.method = method;
|
102 | error.path = path;
|
103 | return error;
|
104 | };
|
105 |
|
106 | Response.prototype.setStatusProperties = function (status) {
|
107 | console.warn('In superagent 2.x setStatusProperties is a private method');
|
108 | return this._setStatusProperties(status);
|
109 | };
|
110 | /**
|
111 | * To json.
|
112 | *
|
113 | * @return {Object}
|
114 | * @api public
|
115 | */
|
116 |
|
117 |
|
118 | Response.prototype.toJSON = function () {
|
119 | return {
|
120 | req: this.request.toJSON(),
|
121 | header: this.header,
|
122 | status: this.status,
|
123 | text: this.text
|
124 | };
|
125 | };
|
126 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL3Jlc3BvbnNlLmpzIl0sIm5hbWVzIjpbInV0aWwiLCJyZXF1aXJlIiwiU3RyZWFtIiwiUmVzcG9uc2VCYXNlIiwibW9kdWxlIiwiZXhwb3J0cyIsIlJlc3BvbnNlIiwicmVxdWVzdCIsImNhbGwiLCJyZXMiLCJyZXEiLCJ0ZXh0IiwiYm9keSIsInVuZGVmaW5lZCIsImZpbGVzIiwiYnVmZmVyZWQiLCJfcmVzQnVmZmVyZWQiLCJoZWFkZXJzIiwiaGVhZGVyIiwiX3NldFN0YXR1c1Byb3BlcnRpZXMiLCJzdGF0dXNDb2RlIiwiX3NldEhlYWRlclByb3BlcnRpZXMiLCJzZXRFbmNvZGluZyIsImJpbmQiLCJvbiIsImVtaXQiLCJpbmhlcml0cyIsInByb3RvdHlwZSIsImRlc3Ryb3kiLCJlcnJvciIsInBhdXNlIiwicmVzdW1lIiwidG9FcnJvciIsIm1ldGhvZCIsInBhdGgiLCJtZXNzYWdlIiwic3RhdHVzIiwiRXJyb3IiLCJzZXRTdGF0dXNQcm9wZXJ0aWVzIiwiY29uc29sZSIsIndhcm4iLCJ0b0pTT04iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBRUEsSUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxJQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLElBQU1FLFlBQVksR0FBR0YsT0FBTyxDQUFDLGtCQUFELENBQTVCO0FBRUE7QUFDQTtBQUNBOzs7QUFFQUcsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxRQUFqQjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNBLFFBQVQsQ0FBa0JDLE9BQWxCLEVBQTJCO0FBQ3pCTCxFQUFBQSxNQUFNLENBQUNNLElBQVAsQ0FBWSxJQUFaO0FBQ0EsT0FBS0MsR0FBTCxHQUFXRixPQUFPLENBQUNFLEdBQW5CO0FBQ0EsTUFBUUEsR0FB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QUFmO0FBQ0FKLEVBQUFBLEtBQUssQ0FBQ0ssSUFBTixHQUFhQSxJQUFiO0FBRUEsU0FBT0wsS0FBUDtBQUNELENBYkQ7O0FBZUF2QixRQUFRLENBQUNxQixTQUFULENBQW1CVyxtQkFBbkIsR0FBeUMsVUFBVUYsTUFBVixFQUFrQjtBQUN6REcsRUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsMkRBQWI7QUFDQSxTQUFPLEtBQUtyQixvQkFBTCxDQUEwQmlCLE1BQTFCLENBQVA7QUFDRCxDQUhEO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQTlCLFFBQVEsQ0FBQ3FCLFNBQVQsQ0FBbUJjLE1BQW5CLEdBQTRCLFlBQVk7QUFDdEMsU0FBTztBQUNML0IsSUFBQUEsR0FBRyxFQUFFLEtBQUtILE9BQUwsQ0FBYWtDLE1BQWIsRUFEQTtBQUVMdkIsSUFBQUEsTUFBTSxFQUFFLEtBQUtBLE1BRlI7QUFHTGtCLElBQUFBLE1BQU0sRUFBRSxLQUFLQSxNQUhSO0FBSUx6QixJQUFBQSxJQUFJLEVBQUUsS0FBS0E7QUFKTixHQUFQO0FBTUQsQ0FQRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqL1xuXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xuY29uc3QgU3RyZWFtID0gcmVxdWlyZSgnc3RyZWFtJyk7XG5jb25zdCBSZXNwb25zZUJhc2UgPSByZXF1aXJlKCcuLi9yZXNwb25zZS1iYXNlJyk7XG5cbi8qKlxuICogRXhwb3NlIGBSZXNwb25zZWAuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBSZXNwb25zZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXNwb25zZWAgd2l0aCB0aGUgZ2l2ZW4gYHhocmAuXG4gKlxuICogIC0gc2V0IGZsYWdzICgub2ssIC5lcnJvciwgZXRjKVxuICogIC0gcGFyc2UgaGVhZGVyXG4gKlxuICogQHBhcmFtIHtSZXF1ZXN0fSByZXFcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAY29uc3RydWN0b3JcbiAqIEBleHRlbmRzIHtTdHJlYW19XG4gKiBAaW1wbGVtZW50cyB7UmVhZGFibGVTdHJlYW19XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBSZXNwb25zZShyZXF1ZXN0KSB7XG4gIFN0cmVhbS5jYWxsKHRoaXMpO1xuICB0aGlzLnJlcyA9IHJlcXVlc3QucmVzO1xuICBjb25zdCB7IHJlcyB9ID0gdGhpcztcbiAgdGhpcy5yZXF1ZXN0ID0gcmVxdWVzdDtcbiAgdGhpcy5yZXEgPSByZXF1ZXN0LnJlcTtcbiAgdGhpcy50ZXh0ID0gcmVzLnRleHQ7XG4gIHRoaXMuYm9keSA9IHJlcy5ib2R5ID09PSB1bmRlZmluZWQgPyB7fSA6IHJlcy5ib2R5O1xuICB0aGlzLmZpbGVzID0gcmVzLmZpbGVzIHx8IHt9O1xuICB0aGlzLmJ1ZmZlcmVkID0gcmVxdWVzdC5fcmVzQnVmZmVyZWQ7XG4gIHRoaXMuaGVhZGVycyA9IHJlcy5oZWFkZXJzO1xuICB0aGlzLmhlYWRlciA9IHRoaXMuaGVhZGVycztcbiAgdGhpcy5fc2V0U3RhdHVzUHJvcGVydGllcyhyZXMuc3RhdHVzQ29kZSk7XG4gIHRoaXMuX3NldEhlYWRlclByb3BlcnRpZXModGhpcy5oZWFkZXIpO1xuICB0aGlzLnNldEVuY29kaW5nID0gcmVzLnNldEVuY29kaW5nLmJpbmQocmVzKTtcbiAgcmVzLm9uKCdkYXRhJywgdGhpcy5lbWl0LmJpbmQodGhpcywgJ2RhdGEnKSk7XG4gIHJlcy5vbignZW5kJywgdGhpcy5lbWl0LmJpbmQodGhpcywgJ2VuZCcpKTtcbiAgcmVzLm9uKCdjbG9zZScsIHRoaXMuZW1pdC5iaW5kKHRoaXMsICdjbG9zZScpKTtcbiAgcmVzLm9uKCdlcnJvcicsIHRoaXMuZW1pdC5iaW5kKHRoaXMsICdlcnJvcicpKTtcbn1cblxuLyoqXG4gKiBJbmhlcml0IGZyb20gYFN0cmVhbWAuXG4gKi9cblxudXRpbC5pbmhlcml0cyhSZXNwb25zZSwgU3RyZWFtKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG5SZXNwb25zZUJhc2UoUmVzcG9uc2UucHJvdG90eXBlKTtcblxuLyoqXG4gKiBJbXBsZW1lbnRzIG1ldGhvZHMgb2YgYSBgUmVhZGFibGVTdHJlYW1gXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgdGhpcy5yZXMuZGVzdHJveShlcnJvcik7XG59O1xuXG4vKipcbiAqIFBhdXNlLlxuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5yZXMucGF1c2UoKTtcbn07XG5cbi8qKlxuICogUmVzdW1lLlxuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5yZXN1bWUgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMucmVzLnJlc3VtZSgpO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYW4gYEVycm9yYCByZXByZXNlbnRhdGl2ZSBvZiB0aGlzIHJlc3BvbnNlLlxuICpcbiAqIEByZXR1cm4ge0Vycm9yfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUudG9FcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgeyByZXEgfSA9IHRoaXM7XG4gIGNvbnN0IHsgbWV0aG9kIH0gPSByZXE7XG4gIGNvbnN0IHsgcGF0aCB9ID0gcmVxO1xuXG4gIGNvbnN0IG1lc3NhZ2UgPSBgY2Fubm90ICR7bWV0aG9kfSAke3BhdGh9ICgke3RoaXMuc3RhdHVzfSlgO1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgZXJyb3Iuc3RhdHVzID0gdGhpcy5zdGF0dXM7XG4gIGVycm9yLnRleHQgPSB0aGlzLnRleHQ7XG4gIGVycm9yLm1ldGhvZCA9IG1ldGhvZDtcbiAgZXJyb3IucGF0aCA9IHBhdGg7XG5cbiAgcmV0dXJuIGVycm9yO1xufTtcblxuUmVzcG9uc2UucHJvdG90eXBlLnNldFN0YXR1c1Byb3BlcnRpZXMgPSBmdW5jdGlvbiAoc3RhdHVzKSB7XG4gIGNvbnNvbGUud2FybignSW4gc3VwZXJhZ2VudCAyLnggc2V0U3RhdHVzUHJvcGVydGllcyBpcyBhIHByaXZhdGUgbWV0aG9kJyk7XG4gIHJldHVybiB0aGlzLl9zZXRTdGF0dXNQcm9wZXJ0aWVzKHN0YXR1cyk7XG59O1xuXG4vKipcbiAqIFRvIGpzb24uXG4gKlxuICogQHJldHVybiB7T2JqZWN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4ge1xuICAgIHJlcTogdGhpcy5yZXF1ZXN0LnRvSlNPTigpLFxuICAgIGhlYWRlcjogdGhpcy5oZWFkZXIsXG4gICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICB0ZXh0OiB0aGlzLnRleHRcbiAgfTtcbn07XG4iXX0= |
\ | No newline at end of file |