UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

46 lines (42 loc) 3.6 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); class Timer { /** * 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)); } } exports.default = Timer; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZXIuY2pzLmNqcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL1RpbWVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGltZXIvUGVyZm9ybWFuY2UgbWVhc3VyZW1lbnQgdXRpbGl0eS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGltZXIge1xuICAgIC8qKlxuICAgICAqIFRoZSBzdGFydCB0aW1lLlxuICAgICAqL1xuICAgIHByaXZhdGUgc3RhcnRUaW1lOiBbbnVtYmVyLCBudW1iZXJdO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGVuZCB0aW1lLlxuICAgICAqL1xuICAgIHByaXZhdGUgZW5kVGltZTogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBwcm9jZXNzLmhydGltZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2V0IHRoZSB0aW1lci5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gcHJvY2Vzcy5ocnRpbWUoKTtcbiAgICAgICAgdGhpcy5lbmRUaW1lID0gdW5kZWZpbmVkITtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdG9wIHRoZSB0aW1lci5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSB0b3RhbCBkdXJhdGlvbiBpbiBtcyBhcyBhIGBmbG9hdGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RvcCgpOiBudW1iZXIge1xuICAgICAgICB0aGlzLmVuZFRpbWUgPSBwcm9jZXNzLmhydGltZSh0aGlzLnN0YXJ0VGltZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSB0b3RhbCBkdXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSB0b3RhbCBkdXJhdGlvbiBpbiBtcyBhcyBhIGBmbG9hdGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5lbmRUaW1lKSB0aHJvdyBuZXcgRXJyb3IoYFlvdSBuZWVkIHRvIHN0b3AgdGhlIHRpbWVyIGJlZm9yZSBnZXR0aW5nIHRoZSByZXN1bHQuYCk7XG5cbiAgICAgICAgcmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KCgodGhpcy5lbmRUaW1lWzBdICogMWU5ICsgdGhpcy5lbmRUaW1lWzFdKSAvIDFfMDAwXzAwMCkudG9GaXhlZCgzKSk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxNQUFxQixLQUFNLENBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlmLFNBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQUE7QUFBQSxFQUVELFdBQWMsR0FBQTtBQUNqQixJQUFLLElBQUEsQ0FBQSxTQUFBLEdBQVksUUFBUSxNQUFPLEVBQUE7QUFBQTtBQUNwQztBQUFBO0FBQUE7QUFBQSxFQUtPLEtBQVEsR0FBQTtBQUNYLElBQUssSUFBQSxDQUFBLFNBQUEsR0FBWSxRQUFRLE1BQU8sRUFBQTtBQUNoQyxJQUFBLElBQUEsQ0FBSyxPQUFVLEdBQUEsS0FBQSxDQUFBO0FBQUE7QUFDbkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sSUFBZSxHQUFBO0FBQ2xCLElBQUEsSUFBQSxDQUFLLE9BQVUsR0FBQSxPQUFBLENBQVEsTUFBTyxDQUFBLElBQUEsQ0FBSyxTQUFTLENBQUE7QUFFNUMsSUFBQSxPQUFPLEtBQUssU0FBVSxFQUFBO0FBQUE7QUFDMUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sU0FBb0IsR0FBQTtBQUN2QixJQUFBLElBQUksQ0FBQyxJQUFLLENBQUEsT0FBQSxFQUFlLE1BQUEsSUFBSSxNQUFNLENBQXVELHFEQUFBLENBQUEsQ0FBQTtBQUUxRixJQUFBLE9BQU8sTUFBTyxDQUFBLFVBQUEsQ0FBQSxDQUFBLENBQWEsSUFBSyxDQUFBLE9BQUEsQ0FBUSxDQUFDLENBQUksR0FBQSxHQUFBLEdBQU0sSUFBSyxDQUFBLE9BQUEsQ0FBUSxDQUFDLENBQUEsSUFBSyxHQUFXLEVBQUEsT0FBQSxDQUFRLENBQUMsQ0FBQyxDQUFBO0FBQUE7QUFFbkc7Ozs7In0=