Socket
Socket
Sign inDemoInstall

dojo

Package Overview
Dependencies
Maintainers
1
Versions
104
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dojo - npm Package Compare versions

Comparing version 2.0.0-alpha1 to 2.0.0-alpha2

2

package.json
{
"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();

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc