| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- "use strict";
- function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
- var id = 0;
- function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
- var _aliveTimer = /*#__PURE__*/_classPrivateFieldLooseKey("aliveTimer");
- var _isDone = /*#__PURE__*/_classPrivateFieldLooseKey("isDone");
- var _onTimedOut = /*#__PURE__*/_classPrivateFieldLooseKey("onTimedOut");
- var _timeout = /*#__PURE__*/_classPrivateFieldLooseKey("timeout");
- /**
- * Helper to abort upload requests if there has not been any progress for `timeout` ms.
- * Create an instance using `timer = new ProgressTimeout(10000, onTimeout)`
- * Call `timer.progress()` to signal that there has been progress of any kind.
- * Call `timer.done()` when the upload has completed.
- */
- class ProgressTimeout {
- constructor(timeout, timeoutHandler) {
- Object.defineProperty(this, _aliveTimer, {
- writable: true,
- value: void 0
- });
- Object.defineProperty(this, _isDone, {
- writable: true,
- value: false
- });
- Object.defineProperty(this, _onTimedOut, {
- writable: true,
- value: void 0
- });
- Object.defineProperty(this, _timeout, {
- writable: true,
- value: void 0
- });
- _classPrivateFieldLooseBase(this, _timeout)[_timeout] = timeout;
- _classPrivateFieldLooseBase(this, _onTimedOut)[_onTimedOut] = timeoutHandler;
- }
- progress() {
- // Some browsers fire another progress event when the upload is
- // cancelled, so we have to ignore progress after the timer was
- // told to stop.
- if (_classPrivateFieldLooseBase(this, _isDone)[_isDone]) return;
- if (_classPrivateFieldLooseBase(this, _timeout)[_timeout] > 0) {
- clearTimeout(_classPrivateFieldLooseBase(this, _aliveTimer)[_aliveTimer]);
- _classPrivateFieldLooseBase(this, _aliveTimer)[_aliveTimer] = setTimeout(_classPrivateFieldLooseBase(this, _onTimedOut)[_onTimedOut], _classPrivateFieldLooseBase(this, _timeout)[_timeout]);
- }
- }
- done() {
- if (!_classPrivateFieldLooseBase(this, _isDone)[_isDone]) {
- clearTimeout(_classPrivateFieldLooseBase(this, _aliveTimer)[_aliveTimer]);
- _classPrivateFieldLooseBase(this, _aliveTimer)[_aliveTimer] = null;
- _classPrivateFieldLooseBase(this, _isDone)[_isDone] = true;
- }
- }
- }
- module.exports = ProgressTimeout;
|