| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- "use strict";
- // Copyright (c) .NET Foundation. All rights reserved.
- // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
- var __extends = (this && this.__extends) || (function () {
- var extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- })();
- Object.defineProperty(exports, "__esModule", { value: true });
- var Errors_1 = require("./Errors");
- var HttpClient_1 = require("./HttpClient");
- var ILogger_1 = require("./ILogger");
- var XhrHttpClient = /** @class */ (function (_super) {
- __extends(XhrHttpClient, _super);
- function XhrHttpClient(logger) {
- var _this = _super.call(this) || this;
- _this.logger = logger;
- return _this;
- }
- /** @inheritDoc */
- XhrHttpClient.prototype.send = function (request) {
- var _this = this;
- // Check that abort was not signaled before calling send
- if (request.abortSignal && request.abortSignal.aborted) {
- return Promise.reject(new Errors_1.AbortError());
- }
- if (!request.method) {
- return Promise.reject(new Error("No method defined."));
- }
- if (!request.url) {
- return Promise.reject(new Error("No url defined."));
- }
- return new Promise(function (resolve, reject) {
- var xhr = new XMLHttpRequest();
- xhr.open(request.method, request.url, true);
- xhr.withCredentials = true;
- xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
- // Explicitly setting the Content-Type header for React Native on Android platform.
- xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
- var headers = request.headers;
- if (headers) {
- Object.keys(headers)
- .forEach(function (header) {
- xhr.setRequestHeader(header, headers[header]);
- });
- }
- if (request.responseType) {
- xhr.responseType = request.responseType;
- }
- if (request.abortSignal) {
- request.abortSignal.onabort = function () {
- xhr.abort();
- reject(new Errors_1.AbortError());
- };
- }
- if (request.timeout) {
- xhr.timeout = request.timeout;
- }
- xhr.onload = function () {
- if (request.abortSignal) {
- request.abortSignal.onabort = null;
- }
- if (xhr.status >= 200 && xhr.status < 300) {
- resolve(new HttpClient_1.HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));
- }
- else {
- reject(new Errors_1.HttpError(xhr.statusText, xhr.status));
- }
- };
- xhr.onerror = function () {
- _this.logger.log(ILogger_1.LogLevel.Warning, "Error from HTTP request. " + xhr.status + ": " + xhr.statusText + ".");
- reject(new Errors_1.HttpError(xhr.statusText, xhr.status));
- };
- xhr.ontimeout = function () {
- _this.logger.log(ILogger_1.LogLevel.Warning, "Timeout from HTTP request.");
- reject(new Errors_1.TimeoutError());
- };
- xhr.send(request.content || "");
- });
- };
- return XhrHttpClient;
- }(HttpClient_1.HttpClient));
- exports.XhrHttpClient = XhrHttpClient;
- //# sourceMappingURL=XhrHttpClient.js.map
|