System.register(['./headers', './request-message-processor', './transformers'], function (_export) {
'use strict';
var Headers, RequestMessageProcessor, timeoutTransformer, callbackParameterNameTransformer, JSONPRequestMessage, JSONPXHR;
_export('createJSONPRequestMessageProcessor', createJSONPRequestMessageProcessor);
function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
function createJSONPRequestMessageProcessor() {
return new RequestMessageProcessor(JSONPXHR, [timeoutTransformer, callbackParameterNameTransformer]);
}
return {
setters: [function (_headers) {
Headers = _headers.Headers;
}, function (_requestMessageProcessor) {
RequestMessageProcessor = _requestMessageProcessor.RequestMessageProcessor;
}, function (_transformers) {
timeoutTransformer = _transformers.timeoutTransformer;
callbackParameterNameTransformer = _transformers.callbackParameterNameTransformer;
}],
execute: function () {
JSONPRequestMessage = function JSONPRequestMessage(url, callbackParameterName) {
_classCallCheck(this, JSONPRequestMessage);
this.method = 'JSONP';
this.url = url;
this.content = undefined;
this.headers = new Headers();
this.responseType = 'jsonp';
this.callbackParameterName = callbackParameterName;
};
_export('JSONPRequestMessage', JSONPRequestMessage);
JSONPXHR = (function () {
function JSONPXHR() {
_classCallCheck(this, JSONPXHR);
}
JSONPXHR.prototype.open = function open(method, url) {
this.method = method;
this.url = url;
this.callbackName = 'jsonp_callback_' + Math.round(100000 * Math.random());
};
JSONPXHR.prototype.send = function send() {
var _this = this;
var url = this.url + (this.url.indexOf('?') >= 0 ? '&' : '?') + encodeURIComponent(this.callbackParameterName) + '=' + this.callbackName;
var script = document.createElement('script');
script.src = url;
script.onerror = function (e) {
cleanUp();
_this.status = 0;
_this.onerror(new Error('error'));
};
var cleanUp = function cleanUp() {
delete window[_this.callbackName];
document.body.removeChild(script);
};
window[this.callbackName] = function (data) {
cleanUp();
if (_this.status === undefined) {
_this.status = 200;
_this.statusText = 'OK';
_this.response = data;
_this.onload(_this);
}
};
document.body.appendChild(script);
if (this.timeout !== undefined) {
setTimeout(function () {
if (_this.status === undefined) {
_this.status = 0;
_this.ontimeout(new Error('timeout'));
}
}, this.timeout);
}
};
JSONPXHR.prototype.abort = function abort() {
if (this.status === undefined) {
this.status = 0;
this.onabort(new Error('abort'));
}
};
JSONPXHR.prototype.setRequestHeader = function setRequestHeader() {};
return JSONPXHR;
})();
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2h0dHAtY2xpZW50L3NyYy9qc29ucC1yZXF1ZXN0LW1lc3NhZ2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OzhGQU9hLG1CQUFtQixFQVcxQixRQUFROztnREF5REUsa0NBQWtDOzs7O0FBQTNDLFdBQVMsa0NBQWtDLEdBQUU7QUFDbEQsV0FBTyxJQUFJLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUMzQyxrQkFBa0IsRUFDbEIsZ0NBQWdDLENBQ2pDLENBQUMsQ0FBQztHQUNKOzs7O3lCQWhGTyxPQUFPOzt5REFDUCx1QkFBdUI7O3lDQUU3QixrQkFBa0I7dURBQ2xCLGdDQUFnQzs7O0FBR3JCLHlCQUFtQixHQUNuQixTQURBLG1CQUFtQixDQUNsQixHQUFHLEVBQUUscUJBQXFCLEVBQUM7OEJBRDVCLG1CQUFtQjs7QUFFNUIsWUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFDdEIsWUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDZixZQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztBQUN6QixZQUFJLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7QUFDN0IsWUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7QUFDNUIsWUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO09BQ3BEOztxQ0FSVSxtQkFBbUI7O0FBVzFCLGNBQVE7aUJBQVIsUUFBUTtnQ0FBUixRQUFROzs7QUFBUixnQkFBUSxXQUNaLElBQUksR0FBQSxjQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUM7QUFDZixjQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUNyQixjQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUNmLGNBQUksQ0FBQyxZQUFZLEdBQUcsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDNUU7O0FBTEcsZ0JBQVEsV0FPWixJQUFJLEdBQUEsZ0JBQUU7OztBQUNKLGNBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUEsQUFBQyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQ3pJLGNBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7O0FBRTlDLGdCQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUNqQixnQkFBTSxDQUFDLE9BQU8sR0FBRyxVQUFDLENBQUMsRUFBSztBQUN0QixtQkFBTyxFQUFFLENBQUM7O0FBRVYsa0JBQUssTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNoQixrQkFBSyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtXQUNqQyxDQUFDOztBQUVGLGNBQUksT0FBTyxHQUFHLFNBQVYsT0FBTyxHQUFTO0FBQ2xCLG1CQUFPLE1BQU0sQ0FBQyxNQUFLLFlBQVksQ0FBQyxDQUFDO0FBQ2pDLG9CQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztXQUNuQyxDQUFDOztBQUVGLGdCQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQUMsSUFBSSxFQUFLO0FBQ3BDLG1CQUFPLEVBQUUsQ0FBQzs7QUFFVixnQkFBRyxNQUFLLE1BQU0sS0FBSyxTQUFTLEVBQUM7QUFDM0Isb0JBQUssTUFBTSxHQUFHLEdBQUcsQ0FBQztBQUNsQixvQkFBSyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLG9CQUFLLFFBQVEsR0FBRyxJQUFJLENBQUM7QUFDckIsb0JBQUssTUFBTSxPQUFNLENBQUM7YUFDbkI7V0FDRixDQUFDOztBQUVGLGtCQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7QUFFbEMsY0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBQztBQUM1QixzQkFBVSxDQUFDLFlBQU07QUFDZixrQkFBRyxNQUFLLE1BQU0sS0FBSyxTQUFTLEVBQUM7QUFDM0Isc0JBQUssTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNoQixzQkFBSyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztlQUN0QzthQUNGLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1dBQ2xCO1NBQ0Y7O0FBN0NHLGdCQUFRLFdBK0NaLEtBQUssR0FBQSxpQkFBRTtBQUNMLGNBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUM7QUFDM0IsZ0JBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLGdCQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7V0FDbEM7U0FDRjs7QUFwREcsZ0JBQVEsV0FzRFosZ0JBQWdCLEdBQUEsNEJBQUUsRUFBRTs7ZUF0RGhCLFFBQVEiLCJmaWxlIjoiL1VzZXJzL0Vpc2VuYmVyZ0VmZmVjdC9Eb2N1bWVudHMvR2l0SHViL1RoZSBEdXJhbmRhbCBQcm9qZWN0L2F1cmVsaWEvaHR0cC1jbGllbnQvc3JjL2pzb25wLXJlcXVlc3QtbWVzc2FnZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SGVhZGVyc30gZnJvbSAnLi9oZWFkZXJzJztcbmltcG9ydCB7UmVxdWVzdE1lc3NhZ2VQcm9jZXNzb3J9IGZyb20gJy4vcmVxdWVzdC1tZXNzYWdlLXByb2Nlc3Nvcic7XG5pbXBvcnQge1xuICB0aW1lb3V0VHJhbnNmb3JtZXIsXG4gIGNhbGxiYWNrUGFyYW1ldGVyTmFtZVRyYW5zZm9ybWVyXG59IGZyb20gJy4vdHJhbnNmb3JtZXJzJztcblxuZXhwb3J0IGNsYXNzIEpTT05QUmVxdWVzdE1lc3NhZ2Uge1xuICBjb25zdHJ1Y3Rvcih1cmwsIGNhbGxiYWNrUGFyYW1ldGVyTmFtZSl7XG4gICAgdGhpcy5tZXRob2QgPSAnSlNPTlAnO1xuICAgIHRoaXMudXJsID0gdXJsO1xuICAgIHRoaXMuY29udGVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgIHRoaXMucmVzcG9uc2VUeXBlID0gJ2pzb25wJztcbiAgICB0aGlzLmNhbGxiYWNrUGFyYW1ldGVyTmFtZSA9IGNhbGxiYWNrUGFyYW1ldGVyTmFtZTtcbiAgfVxufVxuXG5jbGFzcyBKU09OUFhIUiB7XG4gIG9wZW4obWV0aG9kLCB1cmwpe1xuICAgIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICAgIHRoaXMudXJsID0gdXJsO1xuICAgIHRoaXMuY2FsbGJhY2tOYW1lID0gJ2pzb25wX2NhbGxiYWNrXycgKyBNYXRoLnJvdW5kKDEwMDAwMCAqIE1hdGgucmFuZG9tKCkpO1xuICB9XG5cbiAgc2VuZCgpe1xuICAgIGxldCB1cmwgPSB0aGlzLnVybCArICh0aGlzLnVybC5pbmRleE9mKCc/JykgPj0gMCA/ICcmJyA6ICc/JykgKyBlbmNvZGVVUklDb21wb25lbnQodGhpcy5jYWxsYmFja1BhcmFtZXRlck5hbWUpICsgJz0nICsgdGhpcy5jYWxsYmFja05hbWU7XG4gICAgbGV0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXG4gICAgc2NyaXB0LnNyYyA9IHVybDtcbiAgICBzY3JpcHQub25lcnJvciA9IChlKSA9PiB7XG4gICAgICBjbGVhblVwKCk7XG5cbiAgICAgIHRoaXMuc3RhdHVzID0gMDtcbiAgICAgIHRoaXMub25lcnJvcihuZXcgRXJyb3IoJ2Vycm9yJykpXG4gICAgfTtcblxuICAgIGxldCBjbGVhblVwID0gKCkgPT4ge1xuICAgICAgZGVsZXRlIHdpbmRvd1t0aGlzLmNhbGxiYWNrTmFtZV07XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNjcmlwdCk7XG4gICAgfTtcblxuICAgIHdpbmRvd1t0aGlzLmNhbGxiYWNrTmFtZV0gPSAoZGF0YSkgPT4ge1xuICAgICAgY2xlYW5VcCgpO1xuXG4gICAgICBpZih0aGlzLnN0YXR1cyA9PT0gdW5kZWZpbmVkKXtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSAyMDA7XG4gICAgICAgIHRoaXMuc3RhdHVzVGV4dCA9ICdPSyc7XG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSBkYXRhO1xuICAgICAgICB0aGlzLm9ubG9hZCh0aGlzKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuXG4gICAgaWYodGhpcy50aW1lb3V0ICE9PSB1bmRlZmluZWQpe1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmKHRoaXMuc3RhdHVzID09PSB1bmRlZmluZWQpe1xuICAgICAgICAgIHRoaXMuc3RhdHVzID0gMDtcbiAgICAgICAgICB0aGlzLm9udGltZW91dChuZXcgRXJyb3IoJ3RpbWVvdXQnKSk7XG4gICAgICAgIH1cbiAgICAgIH0sIHRoaXMudGltZW91dCk7XG4gICAgfVxuICB9XG5cbiAgYWJvcnQoKXtcbiAgICBpZih0aGlzLnN0YXR1cyA9PT0gdW5kZWZpbmVkKXtcbiAgICAgIHRoaXMuc3RhdHVzID0gMDtcbiAgICAgIHRoaXMub25hYm9ydChuZXcgRXJyb3IoJ2Fib3J0JykpO1xuICAgIH1cbiAgfVxuXG4gIHNldFJlcXVlc3RIZWFkZXIoKXt9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVKU09OUFJlcXVlc3RNZXNzYWdlUHJvY2Vzc29yKCl7XG4gIHJldHVybiBuZXcgUmVxdWVzdE1lc3NhZ2VQcm9jZXNzb3IoSlNPTlBYSFIsIFtcbiAgICB0aW1lb3V0VHJhbnNmb3JtZXIsXG4gICAgY2FsbGJhY2tQYXJhbWV0ZXJOYW1lVHJhbnNmb3JtZXJcbiAgXSk7XG59XG4iXX0= |