import HTTPRequest from 'core/http/http_request';
import RequestHooks from 'core/http/request_hooks';
import Ajax from 'core/http/ajax';
import * as Errors from 'core/errors';
var hooks: RequestHooks = {
getRequest: function(socket: HTTPRequest): Ajax {
var xdr = new (<any>window).XDomainRequest();
xdr.ontimeout = function() {
socket.emit('error', new Errors.RequestTimedOut());
socket.close();
};
xdr.onerror = function(e) {
socket.emit('error', e);
socket.close();
};
xdr.onprogress = function() {
if (xdr.responseText && xdr.responseText.length > 0) {
socket.onChunk(200, xdr.responseText);
}
};
xdr.onload = function() {
if (xdr.responseText && xdr.responseText.length > 0) {
socket.onChunk(200, xdr.responseText);
}
socket.emit('finished', 200);
socket.close();
};
return xdr;
},
abortRequest: function(xdr: Ajax) {
xdr.ontimeout = xdr.onerror = xdr.onprogress = xdr.onload = null;
xdr.abort();
}
};
export default hooks;
|