UNPKG

3.91 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4Object.defineProperty(exports, "__esModule", {
5 value: true
6});
7exports["default"] = exports.Mutex = void 0;
8var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15var _asyncMutex = require("async-mutex");
16var _bluebird = _interopRequireDefault(require("bluebird"));
17function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
18function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable no-await-in-loop */ /* eslint-disable no-constant-condition */
19var Mutex = /*#__PURE__*/function (_BaseMutex) {
20 (0, _inherits2["default"])(Mutex, _BaseMutex);
21 var _super = _createSuper(Mutex);
22 function Mutex() {
23 (0, _classCallCheck2["default"])(this, Mutex);
24 return _super.apply(this, arguments);
25 }
26 (0, _createClass2["default"])(Mutex, [{
27 key: "isAsyncLocked",
28 value: function () {
29 var _isAsyncLocked = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
30 var timeout,
31 interval,
32 startedAt,
33 _args = arguments;
34 return _regenerator["default"].wrap(function _callee$(_context) {
35 while (1) switch (_context.prev = _context.next) {
36 case 0:
37 timeout = _args.length > 0 && _args[0] !== undefined ? _args[0] : 1000;
38 interval = _args.length > 1 && _args[1] !== undefined ? _args[1] : 100;
39 startedAt = new Date();
40 case 3:
41 if (!true) {
42 _context.next = 12;
43 break;
44 }
45 if (this.isLocked()) {
46 _context.next = 6;
47 break;
48 }
49 return _context.abrupt("return", false);
50 case 6:
51 if (!(timeout && startedAt + timeout < Date.now())) {
52 _context.next = 8;
53 break;
54 }
55 return _context.abrupt("return", true);
56 case 8:
57 _context.next = 10;
58 return _bluebird["default"].delay(interval);
59 case 10:
60 _context.next = 3;
61 break;
62 case 12:
63 case "end":
64 return _context.stop();
65 }
66 }, _callee, this);
67 }));
68 function isAsyncLocked() {
69 return _isAsyncLocked.apply(this, arguments);
70 }
71 return isAsyncLocked;
72 }()
73 }]);
74 return Mutex;
75}(_asyncMutex.Mutex);
76exports.Mutex = Mutex;
77var _default = Mutex;
78exports["default"] = _default;
79//# sourceMappingURL=Mutex.js.map
\No newline at end of file