UNPKG

@qrsln/utils

Version:
59 lines (57 loc) 5.91 kB
/** @dynamic */ export const Sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); /** @dynamic */ export class StopWatch { constructor() { this.startTimeMillis = 0; this.totalTimeMillis = 0; /** * Convert milliseconds to time string (hh:mm:ss:mss). * @param milliseconds Number * @return String */ this.TimeSpan = (milliseconds) => new Date(milliseconds).toISOString().slice(11, -1); } static StartNew() { const stopWatch = new StopWatch(); stopWatch.Start(); return stopWatch; } Reset() { this.startTimeMillis = 0; this.totalTimeMillis = 0; } Start() { this.startTimeMillis = Date.now(); } Stop() { const lastTime = Date.now() - this.startTimeMillis; this.totalTimeMillis += lastTime; // console.log(this.totalTimeMillis, lastTime); return this.Elapsed; } // Get the elapsed time as a TimeSpan value. get Elapsed() { return this.TimeSpan(this.totalTimeMillis); } // Get the elapsed time as a TimeSpan value. get ElapsedMilliseconds() { return this.totalTimeMillis; } } /* import {Sleep, StopWatch} from '@qrsln/loot-box/Utils'; (async () => { const watcher = StopWatch.StartNew(); watcher.Stop(); console.log(watcher.Elapsed); console.log("Tasks take " + watcher.ElapsedMilliseconds + " milliseconds"); const stopWatch = new StopWatch(); stopWatch.Start(); await Sleep(10000); stopWatch.Stop(); // Get the elapsed time as a TimeSpan value. const ts = stopWatch.Elapsed; })(); * */ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcFdhdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXRpbHMvQ29yZS9zcmMvU3RvcFdhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWU7QUFDZixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRXRGLGVBQWU7QUFDZixNQUFNLE9BQU8sU0FBUztJQUlwQjtRQUhRLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBcUM1Qjs7OztXQUlHO1FBQ0ksYUFBUSxHQUFHLENBQUMsWUFBb0IsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBdkMvRixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUk7UUFDRixNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUMzRCxJQUFJLENBQUMsZUFBZSxJQUFJLFFBQVEsQ0FBQztRQUNqQywrQ0FBK0M7UUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0NBUUY7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OztLQWdCSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAZHluYW1pYyAqL1xyXG5leHBvcnQgY29uc3QgU2xlZXAgPSAobXM/OiBudW1iZXIpID0+IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xyXG5cclxuLyoqIEBkeW5hbWljICovXHJcbmV4cG9ydCBjbGFzcyBTdG9wV2F0Y2gge1xyXG4gIHByaXZhdGUgc3RhcnRUaW1lTWlsbGlzID0gMDtcclxuICBwcml2YXRlIHRvdGFsVGltZU1pbGxpcyA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIFN0YXJ0TmV3KCk6IFN0b3BXYXRjaCB7XHJcbiAgICBjb25zdCBzdG9wV2F0Y2ggPSBuZXcgU3RvcFdhdGNoKCk7XHJcbiAgICBzdG9wV2F0Y2guU3RhcnQoKTtcclxuICAgIHJldHVybiBzdG9wV2F0Y2g7XHJcbiAgfVxyXG5cclxuICBSZXNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhcnRUaW1lTWlsbGlzID0gMDtcclxuICAgIHRoaXMudG90YWxUaW1lTWlsbGlzID0gMDtcclxuICB9XHJcblxyXG4gIFN0YXJ0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGFydFRpbWVNaWxsaXMgPSBEYXRlLm5vdygpO1xyXG4gIH1cclxuXHJcbiAgU3RvcCgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGFzdFRpbWU6IG51bWJlciA9IERhdGUubm93KCkgLSB0aGlzLnN0YXJ0VGltZU1pbGxpcztcclxuICAgIHRoaXMudG90YWxUaW1lTWlsbGlzICs9IGxhc3RUaW1lO1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy50b3RhbFRpbWVNaWxsaXMsIGxhc3RUaW1lKTtcclxuICAgIHJldHVybiB0aGlzLkVsYXBzZWQ7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlIGVsYXBzZWQgdGltZSBhcyBhIFRpbWVTcGFuIHZhbHVlLlxyXG4gIGdldCBFbGFwc2VkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5UaW1lU3Bhbih0aGlzLnRvdGFsVGltZU1pbGxpcyk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlIGVsYXBzZWQgdGltZSBhcyBhIFRpbWVTcGFuIHZhbHVlLlxyXG4gIGdldCBFbGFwc2VkTWlsbGlzZWNvbmRzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy50b3RhbFRpbWVNaWxsaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0IG1pbGxpc2Vjb25kcyB0byB0aW1lIHN0cmluZyAoaGg6bW06c3M6bXNzKS5cclxuICAgKiBAcGFyYW0gIG1pbGxpc2Vjb25kcyBOdW1iZXJcclxuICAgKiBAcmV0dXJuIFN0cmluZ1xyXG4gICAqL1xyXG4gIHB1YmxpYyBUaW1lU3BhbiA9IChtaWxsaXNlY29uZHM6IG51bWJlcikgPT4gbmV3IERhdGUobWlsbGlzZWNvbmRzKS50b0lTT1N0cmluZygpLnNsaWNlKDExLCAtMSk7XHJcbn1cclxuXHJcbi8qXHJcbmltcG9ydCB7U2xlZXAsIFN0b3BXYXRjaH0gZnJvbSAnQHFyc2xuL2xvb3QtYm94L1V0aWxzJztcclxuXHJcbihhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgd2F0Y2hlciA9IFN0b3BXYXRjaC5TdGFydE5ldygpO1xyXG4gICAgICAgIHdhdGNoZXIuU3RvcCgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHdhdGNoZXIuRWxhcHNlZCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJUYXNrcyB0YWtlIFwiICsgd2F0Y2hlci5FbGFwc2VkTWlsbGlzZWNvbmRzICsgXCIgbWlsbGlzZWNvbmRzXCIpO1xyXG5cclxuICAgICAgICBjb25zdCBzdG9wV2F0Y2ggPSBuZXcgU3RvcFdhdGNoKCk7XHJcbiAgICAgICAgc3RvcFdhdGNoLlN0YXJ0KCk7XHJcbiAgICAgICAgYXdhaXQgU2xlZXAoMTAwMDApO1xyXG4gICAgICAgIHN0b3BXYXRjaC5TdG9wKCk7XHJcbiAgICAgICAgLy8gR2V0IHRoZSBlbGFwc2VkIHRpbWUgYXMgYSBUaW1lU3BhbiB2YWx1ZS5cclxuICAgICAgICBjb25zdCB0cyA9IHN0b3BXYXRjaC5FbGFwc2VkO1xyXG59KSgpO1xyXG4qICAqL1xyXG4iXX0=