Comparing version 2.0.0-alpha1 to 2.0.0-alpha2
{ | ||
"name": "dojo", | ||
"version": "2.0.0-alpha1", | ||
"version": "2.0.0-alpha2", | ||
"scripts": { | ||
@@ -5,0 +5,0 @@ "prepublish": "support/prepublish.sh" |
@@ -16,2 +16,3 @@ | ||
var request = function (url, options) { | ||
if (typeof options === "undefined") { options = {}; } | ||
var args = Array.prototype.slice.call(arguments, 0); | ||
@@ -18,0 +19,0 @@ |
@@ -18,2 +18,3 @@ var http = require('http'); | ||
function node(url, options) { | ||
if (typeof options === "undefined") { options = {}; } | ||
var deferred = new Promise.Deferred(function (reason) { | ||
@@ -37,3 +38,3 @@ request && request.abort(); | ||
localAddress: options.localAddress, | ||
method: options.method, | ||
method: options.method ? options.method.toUpperCase() : 'GET', | ||
passphrase: options.passphrase, | ||
@@ -101,2 +102,20 @@ path: parsedUrl.path, | ||
response.nativeResponse = nativeResponse; | ||
response.statusCode = nativeResponse.statusCode; | ||
// Redirection handling defaults to true in order to harmonise with the XHR provider, which will always | ||
// follow redirects | ||
// TODO: This redirect code is not 100% correct according to the RFC; needs to handle redirect loops and | ||
// restrict/modify certain redirects | ||
if (response.statusCode >= 300 && response.statusCode < 400 && response.statusCode !== 304 && options.followRedirects !== false && nativeResponse.headers.location) { | ||
deferred.progress({ | ||
type: 'redirect', | ||
location: nativeResponse.headers.location, | ||
response: nativeResponse | ||
}); | ||
deferred.resolve(node(nativeResponse.headers.location, options)); | ||
return; | ||
} | ||
if (!options.streamData) { | ||
@@ -107,2 +126,14 @@ data = []; | ||
options.streamEncoding && nativeResponse.setEncoding(options.streamEncoding); | ||
if (options.streamTarget) { | ||
nativeResponse.pipe(options.streamTarget); | ||
options.streamTarget.once('error', function (error) { | ||
nativeResponse.unpipe(options.streamTarget); | ||
request.abort(); | ||
error.response = response; | ||
deferred.reject(error); | ||
}); | ||
options.streamTarget.once('finish', function () { | ||
deferred.resolve(response); | ||
}); | ||
} | ||
@@ -122,8 +153,9 @@ nativeResponse.on('data', function (chunk) { | ||
deferred.resolve(response); | ||
// If using a streamTarget, wait for it to finish in case it throws an error | ||
if (!options.streamTarget) { | ||
deferred.resolve(response); | ||
} | ||
}); | ||
deferred.progress({ type: 'nativeResponse', response: nativeResponse }); | ||
response.nativeResponse = nativeResponse; | ||
response.statusCode = nativeResponse.statusCode; | ||
}); | ||
@@ -161,5 +193,17 @@ | ||
return promise; | ||
return promise.catch(function (error) { | ||
var parsedUrl = urlUtil.parse(url); | ||
if (parsedUrl.auth) { | ||
parsedUrl.auth = '(redacted)'; | ||
} | ||
var sanitizedUrl = urlUtil.format(parsedUrl); | ||
error.message = '[' + requestOptions.method + ' ' + sanitizedUrl + '] ' + error.message; | ||
throw error; | ||
}); | ||
} | ||
module.exports = node; |
var Promise = require('../Promise'); | ||
function xhr(url, options) { | ||
if (typeof options === "undefined") { options = {}; } | ||
var deferred = new Promise.Deferred(function (reason) { | ||
@@ -5,0 +6,0 @@ request && request.abort(); |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
107971
14468
2878
3