UNPKG

@nlabs/gothamjs

Version:
38 lines (37 loc) 3.82 kB
/** * Copyright (c) 2018-Present, Nitrogen Labs, Inc. * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. */ /** * Create a Timer * @param {Number} delay * @param {Function} callback * @constructor */ export class GothamTimer { timerId; start = 0; remaining = 0; delay = 0; callback; constructor(delay, callback){ this.callback = callback; this.delay = delay; this.remaining = delay; // Methods this.getTimeRemaining = this.getTimeRemaining.bind(this); this.pause = this.pause.bind(this); this.resume = this.resume.bind(this); } pause() { clearTimeout(this.timerId); this.remaining -= +new Date() - this.start; } resume() { this.start = +new Date(); clearTimeout(this.timerId); this.timerId = setTimeout(this.callback, this.remaining); } getTimeRemaining() { return this.remaining; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy91dGlscy90aW1lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuLyoqXG4gKiBDcmVhdGUgYSBUaW1lclxuICogQHBhcmFtIHtOdW1iZXJ9IGRlbGF5XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQGNvbnN0cnVjdG9yXG4gKi9cbmV4cG9ydCBjbGFzcyBHb3RoYW1UaW1lciB7XG4gIHRpbWVySWQ6IHVua25vd247XG4gIHN0YXJ0OiBudW1iZXIgPSAwO1xuICByZW1haW5pbmc6IG51bWJlciA9IDA7XG4gIGRlbGF5OiBudW1iZXIgPSAwO1xuICBjYWxsYmFjazogdW5rbm93bjtcblxuICBjb25zdHJ1Y3RvcihkZWxheTogbnVtYmVyLCBjYWxsYmFjazogdW5rbm93bikge1xuICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB0aGlzLmRlbGF5ID0gZGVsYXk7XG4gICAgdGhpcy5yZW1haW5pbmcgPSBkZWxheTtcblxuICAgIC8vIE1ldGhvZHNcbiAgICB0aGlzLmdldFRpbWVSZW1haW5pbmcgPSB0aGlzLmdldFRpbWVSZW1haW5pbmcuYmluZCh0aGlzKTtcbiAgICB0aGlzLnBhdXNlID0gdGhpcy5wYXVzZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVzdW1lID0gdGhpcy5yZXN1bWUuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHBhdXNlKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQgYXMgbnVtYmVyKTtcbiAgICB0aGlzLnJlbWFpbmluZyAtPSAoKyhuZXcgRGF0ZSgpKSAtIHRoaXMuc3RhcnQpO1xuICB9XG5cbiAgcmVzdW1lKCkge1xuICAgIHRoaXMuc3RhcnQgPSArKG5ldyBEYXRlKCkpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQgYXMgbnVtYmVyKTtcbiAgICB0aGlzLnRpbWVySWQgPSBzZXRUaW1lb3V0KHRoaXMuY2FsbGJhY2sgYXMgKCkgPT4gdm9pZCwgdGhpcy5yZW1haW5pbmcpO1xuICB9XG5cbiAgZ2V0VGltZVJlbWFpbmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5yZW1haW5pbmc7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJHb3RoYW1UaW1lciIsInRpbWVySWQiLCJzdGFydCIsInJlbWFpbmluZyIsImRlbGF5IiwiY2FsbGJhY2siLCJnZXRUaW1lUmVtYWluaW5nIiwiYmluZCIsInBhdXNlIiwicmVzdW1lIiwiY2xlYXJUaW1lb3V0IiwiRGF0ZSIsInNldFRpbWVvdXQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNEOzs7OztDQUtDLEdBQ0QsT0FBTyxNQUFNQTtJQUNYQyxRQUFpQjtJQUNqQkMsUUFBZ0IsRUFBRTtJQUNsQkMsWUFBb0IsRUFBRTtJQUN0QkMsUUFBZ0IsRUFBRTtJQUNsQkMsU0FBa0I7SUFFbEIsWUFBWUQsS0FBYSxFQUFFQyxRQUFpQixDQUFFO1FBQzVDLElBQUksQ0FBQ0EsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNELEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNELFNBQVMsR0FBR0M7UUFFakIsVUFBVTtRQUNWLElBQUksQ0FBQ0UsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDQSxnQkFBZ0IsQ0FBQ0MsSUFBSSxDQUFDLElBQUk7UUFDdkQsSUFBSSxDQUFDQyxLQUFLLEdBQUcsSUFBSSxDQUFDQSxLQUFLLENBQUNELElBQUksQ0FBQyxJQUFJO1FBQ2pDLElBQUksQ0FBQ0UsTUFBTSxHQUFHLElBQUksQ0FBQ0EsTUFBTSxDQUFDRixJQUFJLENBQUMsSUFBSTtJQUNyQztJQUVBQyxRQUFRO1FBQ05FLGFBQWEsSUFBSSxDQUFDVCxPQUFPO1FBQ3pCLElBQUksQ0FBQ0UsU0FBUyxJQUFLLENBQUUsSUFBSVEsU0FBVSxJQUFJLENBQUNULEtBQUs7SUFDL0M7SUFFQU8sU0FBUztRQUNQLElBQUksQ0FBQ1AsS0FBSyxHQUFHLENBQUUsSUFBSVM7UUFDbkJELGFBQWEsSUFBSSxDQUFDVCxPQUFPO1FBQ3pCLElBQUksQ0FBQ0EsT0FBTyxHQUFHVyxXQUFXLElBQUksQ0FBQ1AsUUFBUSxFQUFnQixJQUFJLENBQUNGLFNBQVM7SUFDdkU7SUFFQUcsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDSCxTQUFTO0lBQ3ZCO0FBQ0YifQ==