UNPKG

@altostra/core

Version:

Core library for shared types and logic

1 lines 2.2 kB
"use strict";var _Synchronizer_operation,_Synchronizer_pendingActions,__awaiter=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Synchronizer=void 0;const resolvedPromise=Promise.resolve();class Synchronizer{constructor(){_Synchronizer_operation.set(this,resolvedPromise),_Synchronizer_pendingActions.set(this,0)}synchronize(e){var t;return __awaiter(this,void 0,void 0,(function*(){__classPrivateFieldSet(this,_Synchronizer_pendingActions,(t=__classPrivateFieldGet(this,_Synchronizer_pendingActions,"f"),++t),"f");const n=__classPrivateFieldGet(this,_Synchronizer_operation,"f").then(e);return __classPrivateFieldSet(this,_Synchronizer_operation,n.then(noop,noop).then(()=>{var e;__classPrivateFieldSet(this,_Synchronizer_pendingActions,(e=__classPrivateFieldGet(this,_Synchronizer_pendingActions,"f"),--e),"f"),0===__classPrivateFieldGet(this,_Synchronizer_pendingActions,"f")&&__classPrivateFieldSet(this,_Synchronizer_operation,resolvedPromise,"f")}),"f"),yield n}))}}function noop(){}exports.Synchronizer=Synchronizer,_Synchronizer_operation=new WeakMap,_Synchronizer_pendingActions=new WeakMap;