mirror of
https://github.com/oven-sh/setup-bun.git
synced 2025-07-18 20:48:29 +02:00
feat: add @actions/cache
This commit is contained in:
parent
b15fb7d098
commit
16e8c96a41
1932 changed files with 261172 additions and 10 deletions
149
node_modules/@azure/ms-rest-js/es/lib/xhrHttpClient.js
generated
vendored
Normal file
149
node_modules/@azure/ms-rest-js/es/lib/xhrHttpClient.js
generated
vendored
Normal file
|
@ -0,0 +1,149 @@
|
|||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
import { HttpHeaders } from "./httpHeaders";
|
||||
import { RestError } from "./restError";
|
||||
/**
|
||||
* A HttpClient implementation that uses XMLHttpRequest to send HTTP requests.
|
||||
*/
|
||||
var XhrHttpClient = /** @class */ (function () {
|
||||
function XhrHttpClient() {
|
||||
}
|
||||
XhrHttpClient.prototype.sendRequest = function (request) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
if (request.agentSettings) {
|
||||
throw new Error("HTTP agent settings not supported in browser environment");
|
||||
}
|
||||
if (request.proxySettings) {
|
||||
throw new Error("HTTP proxy is not supported in browser environment");
|
||||
}
|
||||
var abortSignal = request.abortSignal;
|
||||
if (abortSignal) {
|
||||
var listener_1 = function () {
|
||||
xhr.abort();
|
||||
};
|
||||
abortSignal.addEventListener("abort", listener_1);
|
||||
xhr.addEventListener("readystatechange", function () {
|
||||
if (xhr.readyState === XMLHttpRequest.DONE) {
|
||||
abortSignal.removeEventListener("abort", listener_1);
|
||||
}
|
||||
});
|
||||
}
|
||||
addProgressListener(xhr.upload, request.onUploadProgress);
|
||||
addProgressListener(xhr, request.onDownloadProgress);
|
||||
if (request.formData) {
|
||||
var formData = request.formData;
|
||||
var requestForm_1 = new FormData();
|
||||
var appendFormValue = function (key, value) {
|
||||
if (value && value.hasOwnProperty("value") && value.hasOwnProperty("options")) {
|
||||
requestForm_1.append(key, value.value, value.options);
|
||||
}
|
||||
else {
|
||||
requestForm_1.append(key, value);
|
||||
}
|
||||
};
|
||||
for (var _i = 0, _a = Object.keys(formData); _i < _a.length; _i++) {
|
||||
var formKey = _a[_i];
|
||||
var formValue = formData[formKey];
|
||||
if (Array.isArray(formValue)) {
|
||||
for (var j = 0; j < formValue.length; j++) {
|
||||
appendFormValue(formKey, formValue[j]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
appendFormValue(formKey, formValue);
|
||||
}
|
||||
}
|
||||
request.body = requestForm_1;
|
||||
request.formData = undefined;
|
||||
var contentType = request.headers.get("Content-Type");
|
||||
if (contentType && contentType.indexOf("multipart/form-data") !== -1) {
|
||||
// browser will automatically apply a suitable content-type header
|
||||
request.headers.remove("Content-Type");
|
||||
}
|
||||
}
|
||||
xhr.open(request.method, request.url);
|
||||
xhr.timeout = request.timeout;
|
||||
xhr.withCredentials = request.withCredentials;
|
||||
for (var _b = 0, _c = request.headers.headersArray(); _b < _c.length; _b++) {
|
||||
var header = _c[_b];
|
||||
xhr.setRequestHeader(header.name, header.value);
|
||||
}
|
||||
xhr.responseType = request.streamResponseBody ? "blob" : "text";
|
||||
// tslint:disable-next-line:no-null-keyword
|
||||
xhr.send(request.body === undefined ? null : request.body);
|
||||
if (request.streamResponseBody) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
xhr.addEventListener("readystatechange", function () {
|
||||
// Resolve as soon as headers are loaded
|
||||
if (xhr.readyState === XMLHttpRequest.HEADERS_RECEIVED) {
|
||||
var blobBody = new Promise(function (resolve, reject) {
|
||||
xhr.addEventListener("load", function () {
|
||||
resolve(xhr.response);
|
||||
});
|
||||
rejectOnTerminalEvent(request, xhr, reject);
|
||||
});
|
||||
resolve({
|
||||
request: request,
|
||||
status: xhr.status,
|
||||
headers: parseHeaders(xhr),
|
||||
blobBody: blobBody,
|
||||
});
|
||||
}
|
||||
});
|
||||
rejectOnTerminalEvent(request, xhr, reject);
|
||||
});
|
||||
}
|
||||
else {
|
||||
return new Promise(function (resolve, reject) {
|
||||
xhr.addEventListener("load", function () {
|
||||
return resolve({
|
||||
request: request,
|
||||
status: xhr.status,
|
||||
headers: parseHeaders(xhr),
|
||||
bodyAsText: xhr.responseText,
|
||||
});
|
||||
});
|
||||
rejectOnTerminalEvent(request, xhr, reject);
|
||||
});
|
||||
}
|
||||
};
|
||||
return XhrHttpClient;
|
||||
}());
|
||||
export { XhrHttpClient };
|
||||
function addProgressListener(xhr, listener) {
|
||||
if (listener) {
|
||||
xhr.addEventListener("progress", function (rawEvent) {
|
||||
return listener({
|
||||
loadedBytes: rawEvent.loaded,
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
// exported locally for testing
|
||||
export function parseHeaders(xhr) {
|
||||
var responseHeaders = new HttpHeaders();
|
||||
var headerLines = xhr
|
||||
.getAllResponseHeaders()
|
||||
.trim()
|
||||
.split(/[\r\n]+/);
|
||||
for (var _i = 0, headerLines_1 = headerLines; _i < headerLines_1.length; _i++) {
|
||||
var line = headerLines_1[_i];
|
||||
var index = line.indexOf(":");
|
||||
var headerName = line.slice(0, index);
|
||||
var headerValue = line.slice(index + 2);
|
||||
responseHeaders.set(headerName, headerValue);
|
||||
}
|
||||
return responseHeaders;
|
||||
}
|
||||
function rejectOnTerminalEvent(request, xhr, reject) {
|
||||
xhr.addEventListener("error", function () {
|
||||
return reject(new RestError("Failed to send request to " + request.url, RestError.REQUEST_SEND_ERROR, undefined, request));
|
||||
});
|
||||
xhr.addEventListener("abort", function () {
|
||||
return reject(new RestError("The request was aborted", RestError.REQUEST_ABORTED_ERROR, undefined, request));
|
||||
});
|
||||
xhr.addEventListener("timeout", function () {
|
||||
return reject(new RestError("timeout of " + xhr.timeout + "ms exceeded", RestError.REQUEST_SEND_ERROR, undefined, request));
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=xhrHttpClient.js.map
|
Loading…
Add table
Add a link
Reference in a new issue