xmlhttprequest-ssl
Advanced tools
Comparing version 1.5.5 to 1.6.0
@@ -7,7 +7,7 @@ var sys = require('util'); | ||
xhr.onreadystatechange = function() { | ||
sys.puts("State: " + this.readyState); | ||
console.log("State: " + this.readyState); | ||
if (this.readyState == 4) { | ||
sys.puts("Complete.\nBody length: " + this.responseText.length); | ||
sys.puts("Body:\n" + this.responseText); | ||
console.log("Complete.\nBody length: " + this.responseText.length); | ||
console.log("Body:\n" + this.responseText); | ||
} | ||
@@ -14,0 +14,0 @@ }; |
@@ -105,2 +105,3 @@ /** | ||
var errorFlag = false; | ||
var abortedFlag = false; | ||
@@ -176,6 +177,7 @@ // Event listeners | ||
errorFlag = false; | ||
abortedFlag = false; | ||
// Check for valid request method | ||
if (!isAllowedHttpMethod(method)) { | ||
throw "SecurityError: Request method not allowed"; | ||
throw new Error("SecurityError: Request method not allowed"); | ||
} | ||
@@ -213,4 +215,3 @@ | ||
if (this.readyState != this.OPENED) { | ||
throw "INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN"; | ||
return false; | ||
throw new Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN"); | ||
} | ||
@@ -222,4 +223,3 @@ if (!isAllowedHttpHeader(header)) { | ||
if (sendFlag) { | ||
throw "INVALID_STATE_ERR: send flag is true"; | ||
return false; | ||
throw new Error("INVALID_STATE_ERR: send flag is true"); | ||
} | ||
@@ -290,7 +290,7 @@ headers[header] = value; | ||
if (this.readyState != this.OPENED) { | ||
throw "INVALID_STATE_ERR: connection must be opened before send() is called"; | ||
throw new Error("INVALID_STATE_ERR: connection must be opened before send() is called"); | ||
} | ||
if (sendFlag) { | ||
throw "INVALID_STATE_ERR: send has already been called"; | ||
throw new Error("INVALID_STATE_ERR: send has already been called"); | ||
} | ||
@@ -320,3 +320,3 @@ | ||
default: | ||
throw "Protocol not supported."; | ||
throw new Error("Protocol not supported."); | ||
} | ||
@@ -327,3 +327,3 @@ | ||
if (settings.method !== "GET") { | ||
throw "XMLHttpRequest: Only GET method is supported"; | ||
throw new Error("XMLHttpRequest: Only GET method is supported"); | ||
} | ||
@@ -412,3 +412,2 @@ | ||
errorFlag = false; | ||
// Handle async requests | ||
@@ -556,3 +555,3 @@ if (settings.async) { | ||
var errorObj = self.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/, ""); | ||
self.handleError(errorObj); | ||
self.handleError(errorObj, 503); | ||
} else { | ||
@@ -569,5 +568,6 @@ // If the file returned okay, parse its data and move to the DONE state | ||
* Called when an error is encountered to deal with it. | ||
* @param status {number} HTTP status code to use rather than the default (0) for XHR errors. | ||
*/ | ||
this.handleError = function(error) { | ||
this.status = 503; | ||
this.handleError = function(error, status) { | ||
this.status = status || 0; | ||
this.statusText = error; | ||
@@ -592,4 +592,3 @@ this.responseText = error.stack; | ||
errorFlag = true; | ||
errorFlag = abortedFlag = true | ||
if (this.readyState !== this.UNSENT | ||
@@ -633,7 +632,13 @@ && (this.readyState !== this.OPENED || sendFlag) | ||
if (typeof self["on" + event] === "function") { | ||
self["on" + event](); | ||
if (this.readyState === this.DONE) | ||
setImmediate(function() { self["on" + event]() }) | ||
else | ||
self["on" + event]() | ||
} | ||
if (event in listeners) { | ||
for (var i = 0, len = listeners[event].length; i < len; i++) { | ||
listeners[event][i].call(self); | ||
for (let i = 0, len = listeners[event].length; i < len; i++) { | ||
if (this.readyState === this.DONE) | ||
setImmediate(function() { listeners[event][i].call(self) }) | ||
else | ||
listeners[event][i].call(self) | ||
} | ||
@@ -649,16 +654,27 @@ } | ||
var setState = function(state) { | ||
if (self.readyState !== state) { | ||
self.readyState = state; | ||
if ((self.readyState === state) || (self.readyState === self.UNSENT && abortedFlag)) | ||
return | ||
if (settings.async || self.readyState < self.OPENED || self.readyState === self.DONE) { | ||
self.dispatchEvent("readystatechange"); | ||
} | ||
self.readyState = state; | ||
if (self.readyState === self.DONE && !errorFlag) { | ||
self.dispatchEvent("load"); | ||
// @TODO figure out InspectorInstrumentation::didLoadXHR(cookie) | ||
self.dispatchEvent("loadend"); | ||
} | ||
if (settings.async || self.readyState < self.OPENED || self.readyState === self.DONE) { | ||
self.dispatchEvent("readystatechange"); | ||
} | ||
if (self.readyState === self.DONE) { | ||
let fire | ||
if (abortedFlag) | ||
fire = "abort" | ||
else if (errorFlag) | ||
fire = "error" | ||
else | ||
fire = "load" | ||
self.dispatchEvent(fire) | ||
// @TODO figure out InspectorInstrumentation::didLoadXHR(cookie) | ||
self.dispatchEvent("loadend"); | ||
} | ||
}; | ||
}; |
{ | ||
"name": "xmlhttprequest-ssl", | ||
"description": "XMLHttpRequest for Node", | ||
"version": "1.5.5", | ||
"version": "1.6.0", | ||
"author": { | ||
@@ -6,0 +6,0 @@ "name": "Michael de Wit" |
@@ -13,2 +13,2 @@ var sys = require("util") | ||
sys.puts("done"); | ||
console.log("done"); |
@@ -23,3 +23,3 @@ var sys = require("util") | ||
assert.equal(removed, true); | ||
sys.puts("done"); | ||
console.log("done"); | ||
this.close(); | ||
@@ -26,0 +26,0 @@ }).listen(8000); |
@@ -50,3 +50,3 @@ var sys = require("util") | ||
sys.puts("done"); | ||
console.log("done"); | ||
} | ||
@@ -53,0 +53,0 @@ }; |
@@ -32,3 +32,3 @@ var sys = require("util") | ||
assert.equal(xhr.responseText, "Hello World"); | ||
sys.puts("done"); | ||
console.log("done"); | ||
} | ||
@@ -35,0 +35,0 @@ }; |
@@ -32,3 +32,3 @@ var sys = require("util") | ||
assert.equal(xhr.responseText, "Hello World"); | ||
sys.puts("done"); | ||
console.log("done"); | ||
} | ||
@@ -35,0 +35,0 @@ }; |
@@ -34,3 +34,3 @@ var sys = require("util") | ||
assert.equal(xhr.responseText, "Hello World"); | ||
sys.puts("done"); | ||
console.log("done"); | ||
} | ||
@@ -37,0 +37,0 @@ }; |
@@ -27,3 +27,3 @@ var sys = require("util") | ||
this.close(); | ||
sys.puts("done"); | ||
console.log("done"); | ||
} | ||
@@ -51,3 +51,3 @@ }).listen(8000); | ||
if (curMethod < methods.length) { | ||
sys.puts("Testing " + methods[curMethod]); | ||
console.log("Testing " + methods[curMethod]); | ||
start(methods[curMethod]); | ||
@@ -63,3 +63,3 @@ } | ||
sys.puts("Testing " + methods[curMethod]); | ||
console.log("Testing " + methods[curMethod]); | ||
start(methods[curMethod]); |
@@ -27,3 +27,3 @@ var sys = require("util") | ||
assert.equal("Hello World", this.responseText); | ||
sys.puts("done"); | ||
console.log("done"); | ||
} | ||
@@ -30,0 +30,0 @@ }; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
35129
954