msal
Version:
Microsoft Authentication Library for js
71 lines • 2.28 kB
JavaScript
/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
import { NetworkRequestType } from "./utils/Constants";
/**
* XHR client for JSON endpoints
* https://www.npmjs.com/package/async-promise
* @hidden
*/
var XhrClient = /** @class */ (function () {
function XhrClient() {
}
XhrClient.prototype.sendRequestAsync = function (url, method, enableCaching) {
var _this = this;
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(method, url, /* async: */ true);
if (enableCaching) {
/*
* TODO: (shivb) ensure that this can be cached
* xhr.setRequestHeader("Cache-Control", "Public");
*/
}
xhr.onload = function () {
if (xhr.status < 200 || xhr.status >= 300) {
reject(_this.handleError(xhr.responseText));
}
var jsonResponse;
try {
jsonResponse = JSON.parse(xhr.responseText);
}
catch (e) {
reject(_this.handleError(xhr.responseText));
}
var response = {
statusCode: xhr.status,
body: jsonResponse
};
resolve(response);
};
xhr.onerror = function () {
reject(xhr.status);
};
if (method === NetworkRequestType.GET) {
xhr.send();
}
else {
throw "not implemented";
}
});
};
XhrClient.prototype.handleError = function (responseText) {
var jsonResponse;
try {
jsonResponse = JSON.parse(responseText);
if (jsonResponse["error"]) {
return jsonResponse["error"];
}
else {
throw responseText;
}
}
catch (e) {
return responseText;
}
};
return XhrClient;
}());
export { XhrClient };
//# sourceMappingURL=XHRClient.js.map