John Cowen 6589cbbd0d
ui: Move to Workspaced Structure (#8994)
* ui: Add the most basic workspace root in /ui

* We already have a LICENSE file in the repository root

* Change directory path in build scripts ui-v2 -> ui

* Make yarn install flags configurable from elsewhere

* Minimal workspace root makefile

* Call the new docker specific target

* Update yarn in the docker build image

* Reconfigure the netlify target and move to the higher makefile

* Move ui-v2 -> ui/packages/consul-ui

* Change repo root to refleect new folder structure

* Temporarily don't hoist consul-api-double

* Fixup CI configuration

* Fixup lint errors

* Fixup Netlify target
2020-10-21 15:23:16 +01:00

30 lines
1.0 KiB
JavaScript

export default function(parseHeaders, XHR) {
return function(options) {
const xhr = new (XHR || XMLHttpRequest)();
xhr.onreadystatechange = function() {
if (this.readyState === 4) {
const headers = parseHeaders(this.getAllResponseHeaders().split('\n'));
if (this.status >= 200 && this.status < 400) {
const response = options.converters['text json'](this.response);
options.success(headers, response, this.status, this.statusText);
} else {
options.error(headers, this.responseText, this.status, this.statusText, this.error);
}
options.complete(this.status);
}
};
xhr.open(options.method, options.url, true);
if (typeof options.headers === 'undefined') {
options.headers = {};
}
const headers = {
...options.headers,
'X-Requested-With': 'XMLHttpRequest',
};
Object.entries(headers).forEach(([key, value]) => xhr.setRequestHeader(key, value));
options.beforeSend(xhr);
xhr.send(options.body);
return xhr;
};
}