| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 | 
							- import { __assign } from "tslib";
 
- import { map } from '../operators/map';
 
- import { Observable } from '../Observable';
 
- import { AjaxResponse } from './AjaxResponse';
 
- import { AjaxTimeoutError, AjaxError } from './errors';
 
- function ajaxGet(url, headers) {
 
-     return ajax({ method: 'GET', url: url, headers: headers });
 
- }
 
- function ajaxPost(url, body, headers) {
 
-     return ajax({ method: 'POST', url: url, body: body, headers: headers });
 
- }
 
- function ajaxDelete(url, headers) {
 
-     return ajax({ method: 'DELETE', url: url, headers: headers });
 
- }
 
- function ajaxPut(url, body, headers) {
 
-     return ajax({ method: 'PUT', url: url, body: body, headers: headers });
 
- }
 
- function ajaxPatch(url, body, headers) {
 
-     return ajax({ method: 'PATCH', url: url, body: body, headers: headers });
 
- }
 
- var mapResponse = map(function (x) { return x.response; });
 
- function ajaxGetJSON(url, headers) {
 
-     return mapResponse(ajax({
 
-         method: 'GET',
 
-         url: url,
 
-         headers: headers,
 
-     }));
 
- }
 
- export var ajax = (function () {
 
-     var create = function (urlOrConfig) {
 
-         var config = typeof urlOrConfig === 'string'
 
-             ? {
 
-                 url: urlOrConfig,
 
-             }
 
-             : urlOrConfig;
 
-         return fromAjax(config);
 
-     };
 
-     create.get = ajaxGet;
 
-     create.post = ajaxPost;
 
-     create.delete = ajaxDelete;
 
-     create.put = ajaxPut;
 
-     create.patch = ajaxPatch;
 
-     create.getJSON = ajaxGetJSON;
 
-     return create;
 
- })();
 
- var UPLOAD = 'upload';
 
- var DOWNLOAD = 'download';
 
- var LOADSTART = 'loadstart';
 
- var PROGRESS = 'progress';
 
- var LOAD = 'load';
 
- export function fromAjax(init) {
 
-     return new Observable(function (destination) {
 
-         var _a, _b;
 
-         var config = __assign({ async: true, crossDomain: false, withCredentials: false, method: 'GET', timeout: 0, responseType: 'json' }, init);
 
-         var queryParams = config.queryParams, configuredBody = config.body, configuredHeaders = config.headers;
 
-         var url = config.url;
 
-         if (!url) {
 
-             throw new TypeError('url is required');
 
-         }
 
-         if (queryParams) {
 
-             var searchParams_1;
 
-             if (url.includes('?')) {
 
-                 var parts = url.split('?');
 
-                 if (2 < parts.length) {
 
-                     throw new TypeError('invalid url');
 
-                 }
 
-                 searchParams_1 = new URLSearchParams(parts[1]);
 
-                 new URLSearchParams(queryParams).forEach(function (value, key) { return searchParams_1.set(key, value); });
 
-                 url = parts[0] + '?' + searchParams_1;
 
-             }
 
-             else {
 
-                 searchParams_1 = new URLSearchParams(queryParams);
 
-                 url = url + '?' + searchParams_1;
 
-             }
 
-         }
 
-         var headers = {};
 
-         if (configuredHeaders) {
 
-             for (var key in configuredHeaders) {
 
-                 if (configuredHeaders.hasOwnProperty(key)) {
 
-                     headers[key.toLowerCase()] = configuredHeaders[key];
 
-                 }
 
-             }
 
-         }
 
-         var crossDomain = config.crossDomain;
 
-         if (!crossDomain && !('x-requested-with' in headers)) {
 
-             headers['x-requested-with'] = 'XMLHttpRequest';
 
-         }
 
-         var withCredentials = config.withCredentials, xsrfCookieName = config.xsrfCookieName, xsrfHeaderName = config.xsrfHeaderName;
 
-         if ((withCredentials || !crossDomain) && xsrfCookieName && xsrfHeaderName) {
 
-             var xsrfCookie = (_b = (_a = document === null || document === void 0 ? void 0 : document.cookie.match(new RegExp("(^|;\\s*)(" + xsrfCookieName + ")=([^;]*)"))) === null || _a === void 0 ? void 0 : _a.pop()) !== null && _b !== void 0 ? _b : '';
 
-             if (xsrfCookie) {
 
-                 headers[xsrfHeaderName] = xsrfCookie;
 
-             }
 
-         }
 
-         var body = extractContentTypeAndMaybeSerializeBody(configuredBody, headers);
 
-         var _request = __assign(__assign({}, config), { url: url,
 
-             headers: headers,
 
-             body: body });
 
-         var xhr;
 
-         xhr = init.createXHR ? init.createXHR() : new XMLHttpRequest();
 
-         {
 
-             var progressSubscriber_1 = init.progressSubscriber, _c = init.includeDownloadProgress, includeDownloadProgress = _c === void 0 ? false : _c, _d = init.includeUploadProgress, includeUploadProgress = _d === void 0 ? false : _d;
 
-             var addErrorEvent = function (type, errorFactory) {
 
-                 xhr.addEventListener(type, function () {
 
-                     var _a;
 
-                     var error = errorFactory();
 
-                     (_a = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.error) === null || _a === void 0 ? void 0 : _a.call(progressSubscriber_1, error);
 
-                     destination.error(error);
 
-                 });
 
-             };
 
-             addErrorEvent('timeout', function () { return new AjaxTimeoutError(xhr, _request); });
 
-             addErrorEvent('abort', function () { return new AjaxError('aborted', xhr, _request); });
 
-             var createResponse_1 = function (direction, event) {
 
-                 return new AjaxResponse(event, xhr, _request, direction + "_" + event.type);
 
-             };
 
-             var addProgressEvent_1 = function (target, type, direction) {
 
-                 target.addEventListener(type, function (event) {
 
-                     destination.next(createResponse_1(direction, event));
 
-                 });
 
-             };
 
-             if (includeUploadProgress) {
 
-                 [LOADSTART, PROGRESS, LOAD].forEach(function (type) { return addProgressEvent_1(xhr.upload, type, UPLOAD); });
 
-             }
 
-             if (progressSubscriber_1) {
 
-                 [LOADSTART, PROGRESS].forEach(function (type) { return xhr.upload.addEventListener(type, function (e) { var _a; return (_a = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.next) === null || _a === void 0 ? void 0 : _a.call(progressSubscriber_1, e); }); });
 
-             }
 
-             if (includeDownloadProgress) {
 
-                 [LOADSTART, PROGRESS].forEach(function (type) { return addProgressEvent_1(xhr, type, DOWNLOAD); });
 
-             }
 
-             var emitError_1 = function (status) {
 
-                 var msg = 'ajax error' + (status ? ' ' + status : '');
 
-                 destination.error(new AjaxError(msg, xhr, _request));
 
-             };
 
-             xhr.addEventListener('error', function (e) {
 
-                 var _a;
 
-                 (_a = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.error) === null || _a === void 0 ? void 0 : _a.call(progressSubscriber_1, e);
 
-                 emitError_1();
 
-             });
 
-             xhr.addEventListener(LOAD, function (event) {
 
-                 var _a, _b;
 
-                 var status = xhr.status;
 
-                 if (status < 400) {
 
-                     (_a = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.complete) === null || _a === void 0 ? void 0 : _a.call(progressSubscriber_1);
 
-                     var response = void 0;
 
-                     try {
 
-                         response = createResponse_1(DOWNLOAD, event);
 
-                     }
 
-                     catch (err) {
 
-                         destination.error(err);
 
-                         return;
 
-                     }
 
-                     destination.next(response);
 
-                     destination.complete();
 
-                 }
 
-                 else {
 
-                     (_b = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.error) === null || _b === void 0 ? void 0 : _b.call(progressSubscriber_1, event);
 
-                     emitError_1(status);
 
-                 }
 
-             });
 
-         }
 
-         var user = _request.user, method = _request.method, async = _request.async;
 
-         if (user) {
 
-             xhr.open(method, url, async, user, _request.password);
 
-         }
 
-         else {
 
-             xhr.open(method, url, async);
 
-         }
 
-         if (async) {
 
-             xhr.timeout = _request.timeout;
 
-             xhr.responseType = _request.responseType;
 
-         }
 
-         if ('withCredentials' in xhr) {
 
-             xhr.withCredentials = _request.withCredentials;
 
-         }
 
-         for (var key in headers) {
 
-             if (headers.hasOwnProperty(key)) {
 
-                 xhr.setRequestHeader(key, headers[key]);
 
-             }
 
-         }
 
-         if (body) {
 
-             xhr.send(body);
 
-         }
 
-         else {
 
-             xhr.send();
 
-         }
 
-         return function () {
 
-             if (xhr && xhr.readyState !== 4) {
 
-                 xhr.abort();
 
-             }
 
-         };
 
-     });
 
- }
 
- function extractContentTypeAndMaybeSerializeBody(body, headers) {
 
-     var _a;
 
-     if (!body ||
 
-         typeof body === 'string' ||
 
-         isFormData(body) ||
 
-         isURLSearchParams(body) ||
 
-         isArrayBuffer(body) ||
 
-         isFile(body) ||
 
-         isBlob(body) ||
 
-         isReadableStream(body)) {
 
-         return body;
 
-     }
 
-     if (isArrayBufferView(body)) {
 
-         return body.buffer;
 
-     }
 
-     if (typeof body === 'object') {
 
-         headers['content-type'] = (_a = headers['content-type']) !== null && _a !== void 0 ? _a : 'application/json;charset=utf-8';
 
-         return JSON.stringify(body);
 
-     }
 
-     throw new TypeError('Unknown body type');
 
- }
 
- var _toString = Object.prototype.toString;
 
- function toStringCheck(obj, name) {
 
-     return _toString.call(obj) === "[object " + name + "]";
 
- }
 
- function isArrayBuffer(body) {
 
-     return toStringCheck(body, 'ArrayBuffer');
 
- }
 
- function isFile(body) {
 
-     return toStringCheck(body, 'File');
 
- }
 
- function isBlob(body) {
 
-     return toStringCheck(body, 'Blob');
 
- }
 
- function isArrayBufferView(body) {
 
-     return typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView(body);
 
- }
 
- function isFormData(body) {
 
-     return typeof FormData !== 'undefined' && body instanceof FormData;
 
- }
 
- function isURLSearchParams(body) {
 
-     return typeof URLSearchParams !== 'undefined' && body instanceof URLSearchParams;
 
- }
 
- function isReadableStream(body) {
 
-     return typeof ReadableStream !== 'undefined' && body instanceof ReadableStream;
 
- }
 
- //# sourceMappingURL=ajax.js.map
 
 
  |