UNPKG

@web-atoms/core

Version:
54 lines (53 loc) 1.64 kB
System.register(["tslib", "../di/DITransient", "./TransientDisposable"], function (_export, _context) { "use strict"; var __decorate, DITransient, TransientDisposable, SingleInvoker; return { setters: [function (_tslib) { __decorate = _tslib.__decorate; }, function (_diDITransient) { DITransient = _diDITransient.default; }, function (_TransientDisposable) { TransientDisposable = _TransientDisposable.default; }], execute: function () { SingleInvoker = class SingleInvoker extends TransientDisposable { constructor() { super(...arguments); this.keys = new Map(); } dispose() { for (const [key, index] of this.keys.entries()) { clearTimeout(index); } this.keys.clear(); } invoke(key, fx, delay = 100) { const keys = this.keys; const e = keys.get(key); if (e) { clearTimeout(e); } keys.set(key, setTimeout(() => { keys.delete(key); fx(); }, delay)); } queue(fx, delay = 1, key) { key !== null && key !== void 0 ? key : key = fx.toString(); const keys = this.keys; const e = keys.get(key); if (e) { clearTimeout(e); } keys.set(key, setTimeout(() => { keys.delete(key); fx(); }, delay)); } }; SingleInvoker = __decorate([DITransient()], SingleInvoker); _export("default", SingleInvoker); } }; }); //# sourceMappingURL=SingleInvoker.js.map