GM_xmlhttpRequest 封装
От
Този скрипт не може да бъде инсталиран директно. Това е библиотека за други скриптове и може да бъде използвана с мета-директива // @require https://update.greatest.deepsurf.us/scripts/565272/1804285/GM_request.js
(function () {
function GM_request(details) {
const {
onload,
onerror,
onretry,
maxRetries,
currentRetry = 0,
url,
...other
} = details;
return fetch(url, other)
.then((response) => {
if (response.ok) {
return response;
} else {
throw new Error(
`Request failed with status ${response.status}: ${response.statusText}`,
);
}
})
.catch((error) => {
if (maxRetries && currentRetry < maxRetries) {
const retryDetails = {
...details,
currentRetry: currentRetry + 1,
};
onretry?.(retryDetails);
return GM_request(retryDetails);
} else {
onerror?.(error);
return Promise.reject(error);
}
});
}
window.GM_request = GM_request;
})();