superagent 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/History.md +10 -0
- package/component.json +1 -1
- package/lib/client.js +11 -6
- package/lib/node/parsers/json.js +7 -4
- package/package.json +9 -5
- package/superagent.js +11 -6
package/History.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
0.21.0 / 2014-11-11
|
|
3
|
+
==================
|
|
4
|
+
|
|
5
|
+
* Trim text before parsing json (gjohnson)
|
|
6
|
+
* Update tests to express 4 (gaastonsr)
|
|
7
|
+
* Prevent double callback when error is thrown (pgn-vole)
|
|
8
|
+
* Fix missing clearTimeout (nickdima)
|
|
9
|
+
* Update debug (TooTallNate)
|
|
10
|
+
|
|
1
11
|
0.20.0 / 2014-10-02
|
|
2
12
|
==================
|
|
3
13
|
|
package/component.json
CHANGED
package/lib/client.js
CHANGED
|
@@ -294,7 +294,9 @@ function Response(req, options) {
|
|
|
294
294
|
options = options || {};
|
|
295
295
|
this.req = req;
|
|
296
296
|
this.xhr = this.req.xhr;
|
|
297
|
-
this.text = this.
|
|
297
|
+
this.text = this.req.method !='HEAD'
|
|
298
|
+
? this.xhr.responseText
|
|
299
|
+
: null;
|
|
298
300
|
this.setStatusProperties(this.xhr.status);
|
|
299
301
|
this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders());
|
|
300
302
|
// getAllResponseHeaders sometimes falsely returns "" for CORS requests, but
|
|
@@ -450,16 +452,18 @@ function Request(method, url) {
|
|
|
450
452
|
this.header = {};
|
|
451
453
|
this._header = {};
|
|
452
454
|
this.on('end', function(){
|
|
455
|
+
var err = null;
|
|
456
|
+
var res = null;
|
|
457
|
+
|
|
453
458
|
try {
|
|
454
|
-
|
|
455
|
-
if ('HEAD' == method) res.text = null;
|
|
456
|
-
self.callback(null, res);
|
|
459
|
+
res = new Response(self);
|
|
457
460
|
} catch(e) {
|
|
458
|
-
|
|
461
|
+
err = new Error('Parser is unable to parse the response');
|
|
459
462
|
err.parse = true;
|
|
460
463
|
err.original = e;
|
|
461
|
-
self.callback(err);
|
|
462
464
|
}
|
|
465
|
+
|
|
466
|
+
self.callback(err, res);
|
|
463
467
|
});
|
|
464
468
|
}
|
|
465
469
|
|
|
@@ -806,6 +810,7 @@ Request.prototype.send = function(data){
|
|
|
806
810
|
|
|
807
811
|
Request.prototype.callback = function(err, res){
|
|
808
812
|
var fn = this._callback;
|
|
813
|
+
this.clearTimeout();
|
|
809
814
|
if (2 == fn.length) return fn(err, res);
|
|
810
815
|
if (err) return this.emit('error', err);
|
|
811
816
|
fn(res);
|
package/lib/node/parsers/json.js
CHANGED
|
@@ -5,9 +5,12 @@ module.exports = function(res, fn){
|
|
|
5
5
|
res.on('data', function(chunk){ res.text += chunk; });
|
|
6
6
|
res.on('end', function(){
|
|
7
7
|
try {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
var text = res.text && res.text.replace(/^\s*|\s*$/g, '');
|
|
9
|
+
var body = text && JSON.parse(text);
|
|
10
|
+
} catch (e) {
|
|
11
|
+
var err = e;
|
|
12
|
+
} finally {
|
|
13
|
+
fn(err, body);
|
|
11
14
|
}
|
|
12
15
|
});
|
|
13
|
-
};
|
|
16
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "superagent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "elegant & feature rich browser / node HTTP with a fluent API",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "make test"
|
|
@@ -26,18 +26,22 @@
|
|
|
26
26
|
"component-emitter": "1.1.2",
|
|
27
27
|
"methods": "1.0.1",
|
|
28
28
|
"cookiejar": "2.0.1",
|
|
29
|
-
"debug": "
|
|
29
|
+
"debug": "2",
|
|
30
30
|
"reduce-component": "1.0.1",
|
|
31
31
|
"extend": "~1.2.1",
|
|
32
32
|
"form-data": "0.1.3",
|
|
33
33
|
"readable-stream": "1.0.27-1"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"
|
|
37
|
-
"express": "3.5.0",
|
|
36
|
+
"basic-auth-connect": "^1.0.0",
|
|
38
37
|
"better-assert": "~1.0.1",
|
|
38
|
+
"body-parser": "^1.9.2",
|
|
39
|
+
"cookie-parser": "^1.3.3",
|
|
40
|
+
"express": "^4.9.8",
|
|
41
|
+
"express-session": "^1.9.1",
|
|
42
|
+
"mocha": "*",
|
|
39
43
|
"should": "3.1.3",
|
|
40
|
-
"
|
|
44
|
+
"zuul": "~1.6.0"
|
|
41
45
|
},
|
|
42
46
|
"browser": {
|
|
43
47
|
"./lib/node/index.js": "./lib/client.js",
|
package/superagent.js
CHANGED
|
@@ -690,7 +690,9 @@ function Response(req, options) {
|
|
|
690
690
|
options = options || {};
|
|
691
691
|
this.req = req;
|
|
692
692
|
this.xhr = this.req.xhr;
|
|
693
|
-
this.text = this.
|
|
693
|
+
this.text = this.req.method !='HEAD'
|
|
694
|
+
? this.xhr.responseText
|
|
695
|
+
: null;
|
|
694
696
|
this.setStatusProperties(this.xhr.status);
|
|
695
697
|
this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders());
|
|
696
698
|
// getAllResponseHeaders sometimes falsely returns "" for CORS requests, but
|
|
@@ -846,16 +848,18 @@ function Request(method, url) {
|
|
|
846
848
|
this.header = {};
|
|
847
849
|
this._header = {};
|
|
848
850
|
this.on('end', function(){
|
|
851
|
+
var err = null;
|
|
852
|
+
var res = null;
|
|
853
|
+
|
|
849
854
|
try {
|
|
850
|
-
|
|
851
|
-
if ('HEAD' == method) res.text = null;
|
|
852
|
-
self.callback(null, res);
|
|
855
|
+
res = new Response(self);
|
|
853
856
|
} catch(e) {
|
|
854
|
-
|
|
857
|
+
err = new Error('Parser is unable to parse the response');
|
|
855
858
|
err.parse = true;
|
|
856
859
|
err.original = e;
|
|
857
|
-
self.callback(err);
|
|
858
860
|
}
|
|
861
|
+
|
|
862
|
+
self.callback(err, res);
|
|
859
863
|
});
|
|
860
864
|
}
|
|
861
865
|
|
|
@@ -1202,6 +1206,7 @@ Request.prototype.send = function(data){
|
|
|
1202
1206
|
|
|
1203
1207
|
Request.prototype.callback = function(err, res){
|
|
1204
1208
|
var fn = this._callback;
|
|
1209
|
+
this.clearTimeout();
|
|
1205
1210
|
if (2 == fn.length) return fn(err, res);
|
|
1206
1211
|
if (err) return this.emit('error', err);
|
|
1207
1212
|
fn(res);
|