UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

51 lines (50 loc) 3.17 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); //#region src/utils/Timer.ts /** * Timer/Performance measurement utility. */ var Timer = class { /** * The start time. */ startTime; /** * The end time. */ endTime; constructor() { this.startTime = process.hrtime(); } /** * Reset the timer. */ reset() { this.startTime = process.hrtime(); this.endTime = void 0; } /** * Stop the timer. * * @returns The total duration in ms as a `float` */ stop() { this.endTime = process.hrtime(this.startTime); return this.getResult(); } /** * Get the total duration. * * @returns The total duration in ms as a `float` */ getResult() { if (!this.endTime) throw new Error(`You need to stop the timer before getting the result.`); return Number.parseFloat(((this.endTime[0] * 1e9 + this.endTime[1]) / 1e6).toFixed(3)); } }; //#endregion exports.default = Timer; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZXIuY2pzLmNqcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvVGltZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaW1lci9QZXJmb3JtYW5jZSBtZWFzdXJlbWVudCB1dGlsaXR5LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUaW1lciB7XG4gICAgLyoqXG4gICAgICogVGhlIHN0YXJ0IHRpbWUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGFydFRpbWU6IFtudW1iZXIsIG51bWJlcl07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZW5kIHRpbWUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBlbmRUaW1lOiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IHByb2Nlc3MuaHJ0aW1lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXQgdGhlIHRpbWVyLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldCgpIHtcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBwcm9jZXNzLmhydGltZSgpO1xuICAgICAgICB0aGlzLmVuZFRpbWUgPSB1bmRlZmluZWQhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0b3AgdGhlIHRpbWVyLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHRvdGFsIGR1cmF0aW9uIGluIG1zIGFzIGEgYGZsb2F0YFxuICAgICAqL1xuICAgIHB1YmxpYyBzdG9wKCk6IG51bWJlciB7XG4gICAgICAgIHRoaXMuZW5kVGltZSA9IHByb2Nlc3MuaHJ0aW1lKHRoaXMuc3RhcnRUaW1lKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXN1bHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHRvdGFsIGR1cmF0aW9uLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHRvdGFsIGR1cmF0aW9uIGluIG1zIGFzIGEgYGZsb2F0YFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSZXN1bHQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLmVuZFRpbWUpIHRocm93IG5ldyBFcnJvcihgWW91IG5lZWQgdG8gc3RvcCB0aGUgdGltZXIgYmVmb3JlIGdldHRpbmcgdGhlIHJlc3VsdC5gKTtcblxuICAgICAgICByZXR1cm4gTnVtYmVyLnBhcnNlRmxvYXQoKCh0aGlzLmVuZFRpbWVbMF0gKiAxZTkgKyB0aGlzLmVuZFRpbWVbMV0pIC8gMV8wMDBfMDAwKS50b0ZpeGVkKDMpKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQXFCLFFBQXJCLE1BQTJCOzs7O0NBSXZCOzs7O0NBS0E7Q0FFQSxjQUFxQjtFQUNqQixLQUFLLFlBQVksUUFBUSxPQUFPO0NBQ3BDOzs7O0NBS0EsUUFBZTtFQUNYLEtBQUssWUFBWSxRQUFRLE9BQU87RUFDaEMsS0FBSyxVQUFVLEtBQUE7Q0FDbkI7Ozs7OztDQU9BLE9BQXNCO0VBQ2xCLEtBQUssVUFBVSxRQUFRLE9BQU8sS0FBSyxTQUFTO0VBRTVDLE9BQU8sS0FBSyxVQUFVO0NBQzFCOzs7Ozs7Q0FPQSxZQUEyQjtFQUN2QixJQUFJLENBQUMsS0FBSyxTQUFTLE1BQU0sSUFBSSxNQUFNLHVEQUF1RDtFQUUxRixPQUFPLE9BQU8sYUFBYSxLQUFLLFFBQVEsS0FBSyxNQUFNLEtBQUssUUFBUSxNQUFNLEtBQVcsUUFBUSxDQUFDLENBQUM7Q0FDL0Y7QUFDSiJ9