decord/source/1480_InternetReachability.js

132 lines
5.5 KiB
JavaScript
Raw Normal View History

2026-08-11 06:20:06 +00:00
// Module ID: 1480
// Function ID: 1481
2026-07-20 16:05:17 +00:00
// Name: InternetReachability
2026-07-29 08:29:29 +00:00
// Dependencies: [42, 41]
2026-07-20 16:05:17 +00:00
2026-08-11 06:20:06 +00:00
// Module 1480 (InternetReachability)
2026-07-23 10:11:24 +00:00
import _classCallCheck from "_classCallCheck";
2026-07-29 08:29:29 +00:00
import _createClass from "_createClass";
2026-07-23 10:11:24 +00:00
2026-07-20 16:05:17 +00:00
class InternetReachability {
constructor(arg0, arg1) {
2026-07-23 10:11:24 +00:00
self = this;
tmp = self(this, InternetReachability);
2026-07-20 16:05:17 +00:00
this._isInternetReachable = undefined;
this._currentInternetReachabilityCheckHandler = null;
this._currentTimeoutHandle = null;
this._setIsInternetReachable = (_isInternetReachable) => {
if (self._isInternetReachable !== _isInternetReachable) {
2026-07-29 08:29:29 +00:00
obj._isInternetReachable = _isInternetReachable;
obj._listener(obj._isInternetReachable);
2026-07-20 16:05:17 +00:00
}
};
this._setExpectsConnection = (arg0) => {
if (null !== self._currentInternetReachabilityCheckHandler) {
2026-07-29 08:29:29 +00:00
obj._currentInternetReachabilityCheckHandler.cancel();
obj._currentInternetReachabilityCheckHandler = null;
const _currentInternetReachabilityCheckHandler = obj._currentInternetReachabilityCheckHandler;
2026-07-20 16:05:17 +00:00
}
if (null !== self._currentTimeoutHandle) {
const _clearTimeout = clearTimeout;
2026-07-29 08:29:29 +00:00
clearTimeout(obj._currentTimeoutHandle);
obj._currentTimeoutHandle = null;
2026-07-20 16:05:17 +00:00
}
if (arg0) {
2026-07-29 08:29:29 +00:00
const _configuration = obj._configuration;
2026-07-20 16:05:17 +00:00
if (_configuration.reachabilityShouldRun()) {
2026-07-29 08:29:29 +00:00
if (!obj._isInternetReachable) {
const result = obj._setIsInternetReachable(null);
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
obj._currentInternetReachabilityCheckHandler = obj._checkInternetReachability();
2026-07-20 16:05:17 +00:00
}
}
2026-07-29 08:29:29 +00:00
const result1 = obj._setIsInternetReachable(false);
2026-07-20 16:05:17 +00:00
};
this._checkInternetReachability = () => {
const abortController = new AbortController();
let obj = { headers: self._configuration.reachabilityHeaders, method: self._configuration.reachabilityMethod, cache: "no-cache", signal: abortController.signal };
const response = fetch(self._configuration.reachabilityUrl, obj);
let promise = new Promise((arg0, arg1) => {
let timeout = arg1;
2026-07-23 10:11:24 +00:00
timeout = setTimeout(() => callback("timedout"), outer1_0._configuration.reachabilityRequestTimeout);
2026-07-20 16:05:17 +00:00
});
function cancel() {
}
promise = new Promise((arg0, arg1) => {
2026-07-23 10:11:24 +00:00
let _classCallCheck = arg1;
2026-07-20 16:05:17 +00:00
function cancel() {
2026-07-23 10:11:24 +00:00
return callback("canceled");
2026-07-20 16:05:17 +00:00
}
});
2026-07-29 08:29:29 +00:00
obj = { promise: null, cancel: null };
2026-07-20 16:05:17 +00:00
const items = [response, promise, promise];
const racePromise = Promise.race(items);
const nextPromise = Promise.race(items).then((status) => {
2026-07-29 08:29:29 +00:00
const _configuration = _classCallCheck._configuration;
2026-07-20 16:05:17 +00:00
return _configuration.reachabilityTest(status);
});
const nextPromise1 = Promise.race(items).then((status) => {
2026-07-29 08:29:29 +00:00
const _configuration = _classCallCheck._configuration;
2026-07-20 16:05:17 +00:00
return _configuration.reachabilityTest(status);
}).then((arg0) => {
2026-07-29 08:29:29 +00:00
const result = _classCallCheck._setIsInternetReachable(arg0);
const _configuration = _classCallCheck._configuration;
_classCallCheck._currentTimeoutHandle = setTimeout(_classCallCheck._checkInternetReachability, _classCallCheck._isInternetReachable ? _configuration.reachabilityLongTimeout : _configuration.reachabilityShortTimeout);
2026-07-20 16:05:17 +00:00
});
2026-07-29 08:29:29 +00:00
obj[0] = Promise.race(items).then((status) => {
const _configuration = _classCallCheck._configuration;
2026-07-20 16:05:17 +00:00
return _configuration.reachabilityTest(status);
}).then((arg0) => {
2026-07-29 08:29:29 +00:00
const result = _classCallCheck._setIsInternetReachable(arg0);
const _configuration = _classCallCheck._configuration;
_classCallCheck._currentTimeoutHandle = setTimeout(_classCallCheck._checkInternetReachability, _classCallCheck._isInternetReachable ? _configuration.reachabilityLongTimeout : _configuration.reachabilityShortTimeout);
2026-07-20 16:05:17 +00:00
}).catch((arg0) => {
if ("canceled" === arg0) {
abortController.abort();
} else {
if ("timedout" === arg0) {
abortController.abort();
}
2026-07-23 10:11:24 +00:00
const result = outer1_0._setIsInternetReachable(false);
2026-07-20 16:05:17 +00:00
const _setTimeout = setTimeout;
2026-07-23 10:11:24 +00:00
outer1_0._currentTimeoutHandle = setTimeout(outer1_0._checkInternetReachability, outer1_0._configuration.reachabilityShortTimeout);
2026-07-20 16:05:17 +00:00
}
}).then(() => {
2026-07-23 10:11:24 +00:00
clearTimeout(_classCallCheck);
2026-07-20 16:05:17 +00:00
}, (arg0) => {
2026-07-23 10:11:24 +00:00
clearTimeout(_classCallCheck);
2026-07-20 16:05:17 +00:00
throw arg0;
});
2026-07-29 08:29:29 +00:00
obj[1] = cancel;
2026-07-20 16:05:17 +00:00
return obj;
};
this.update = (isInternetReachable) => {
2026-08-04 21:03:28 +00:00
if (typeof isInternetReachable.isInternetReachable === "boolean") {
2026-07-20 16:05:17 +00:00
if (self._configuration.useNativeReachability) {
const result = self._setIsInternetReachable(isInternetReachable.isInternetReachable);
}
}
const result1 = self._setExpectsConnection(isInternetReachable.isConnected);
};
this.currentState = () => self._isInternetReachable;
this.tearDown = () => {
if (null !== self._currentInternetReachabilityCheckHandler) {
2026-07-29 08:29:29 +00:00
tmp._currentInternetReachabilityCheckHandler.cancel();
tmp._currentInternetReachabilityCheckHandler = null;
const _currentInternetReachabilityCheckHandler = tmp._currentInternetReachabilityCheckHandler;
2026-07-20 16:05:17 +00:00
}
if (null !== self._currentTimeoutHandle) {
const _clearTimeout = clearTimeout;
2026-07-29 08:29:29 +00:00
clearTimeout(tmp._currentTimeoutHandle);
tmp._currentTimeoutHandle = null;
2026-07-20 16:05:17 +00:00
}
};
this._configuration = global;
this._listener = arg1;
return;
}
}
2026-07-29 08:29:29 +00:00
export default _createClass(InternetReachability);