UNPKG

@nlabs/gothamjs

Version:
32 lines (31 loc) 3.05 kB
class GothamTimer { timerId; start = 0; remaining = 0; delay = 0; callback; constructor(delay, callback) { this.callback = callback; this.delay = delay; this.remaining = delay; this.getTimeRemaining = this.getTimeRemaining.bind(this); this.pause = this.pause.bind(this); this.resume = this.resume.bind(this); } pause() { clearTimeout(this.timerId); this.remaining -= +/* @__PURE__ */ new Date() - this.start; } resume() { this.start = +/* @__PURE__ */ new Date(); clearTimeout(this.timerId); this.timerId = setTimeout(this.callback, this.remaining); } getTimeRemaining() { return this.remaining; } } export { GothamTimer }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3RpbWVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuLyoqXG4gKiBDcmVhdGUgYSBUaW1lclxuICogQHBhcmFtIHtOdW1iZXJ9IGRlbGF5XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQGNvbnN0cnVjdG9yXG4gKi9cbmV4cG9ydCBjbGFzcyBHb3RoYW1UaW1lciB7XG4gIHRpbWVySWQ6IHVua25vd247XG4gIHN0YXJ0OiBudW1iZXIgPSAwO1xuICByZW1haW5pbmc6IG51bWJlciA9IDA7XG4gIGRlbGF5OiBudW1iZXIgPSAwO1xuICBjYWxsYmFjazogdW5rbm93bjtcblxuICBjb25zdHJ1Y3RvcihkZWxheTogbnVtYmVyLCBjYWxsYmFjazogdW5rbm93bikge1xuICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB0aGlzLmRlbGF5ID0gZGVsYXk7XG4gICAgdGhpcy5yZW1haW5pbmcgPSBkZWxheTtcblxuICAgIC8vIE1ldGhvZHNcbiAgICB0aGlzLmdldFRpbWVSZW1haW5pbmcgPSB0aGlzLmdldFRpbWVSZW1haW5pbmcuYmluZCh0aGlzKTtcbiAgICB0aGlzLnBhdXNlID0gdGhpcy5wYXVzZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVzdW1lID0gdGhpcy5yZXN1bWUuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHBhdXNlKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQgYXMgbnVtYmVyKTtcbiAgICB0aGlzLnJlbWFpbmluZyAtPSAoKyhuZXcgRGF0ZSgpKSAtIHRoaXMuc3RhcnQpO1xuICB9XG5cbiAgcmVzdW1lKCkge1xuICAgIHRoaXMuc3RhcnQgPSArKG5ldyBEYXRlKCkpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQgYXMgbnVtYmVyKTtcbiAgICB0aGlzLnRpbWVySWQgPSBzZXRUaW1lb3V0KHRoaXMuY2FsbGJhY2sgYXMgKCkgPT4gdm9pZCwgdGhpcy5yZW1haW5pbmcpO1xuICB9XG5cbiAgZ2V0VGltZVJlbWFpbmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5yZW1haW5pbmc7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQVVPLE1BQU0sWUFBWTtBQUFBLEVBQ3ZCO0FBQUEsRUFDQSxRQUFnQjtBQUFBLEVBQ2hCLFlBQW9CO0FBQUEsRUFDcEIsUUFBZ0I7QUFBQSxFQUNoQjtBQUFBLEVBRUEsWUFBWSxPQUFlLFVBQW1CO0FBQzVDLFNBQUssV0FBVztBQUNoQixTQUFLLFFBQVE7QUFDYixTQUFLLFlBQVk7QUFHakIsU0FBSyxtQkFBbUIsS0FBSyxpQkFBaUIsS0FBSyxJQUFJO0FBQ3ZELFNBQUssUUFBUSxLQUFLLE1BQU0sS0FBSyxJQUFJO0FBQ2pDLFNBQUssU0FBUyxLQUFLLE9BQU8sS0FBSyxJQUFJO0FBQUEsRUFDckM7QUFBQSxFQUVBLFFBQVE7QUFDTixpQkFBYSxLQUFLLE9BQWlCO0FBQ25DLFNBQUssYUFBYyxDQUFFLG9CQUFJLEtBQUssSUFBSyxLQUFLO0FBQUEsRUFDMUM7QUFBQSxFQUVBLFNBQVM7QUFDUCxTQUFLLFFBQVEsQ0FBRSxvQkFBSSxLQUFLO0FBQ3hCLGlCQUFhLEtBQUssT0FBaUI7QUFDbkMsU0FBSyxVQUFVLFdBQVcsS0FBSyxVQUF3QixLQUFLLFNBQVM7QUFBQSxFQUN2RTtBQUFBLEVBRUEsbUJBQW1CO0FBQ2pCLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K