UNPKG

timewarp-sim

Version:

🕰️ Deterministic time simulation and manipulation library for TypeScript

35 lines (34 loc) 862 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TimeState = void 0; const DateMocker_1 = require("./DateMocker"); class TimeState { constructor() { this._frozen = false; this._currentTime = Date.now(); } get now() { return this._frozen ? this._currentTime : DateMocker_1.OriginalDate.now(); } freeze() { this._frozen = true; this._currentTime = Date.now(); } unfreeze() { this._frozen = false; } setTime(timestamp) { this._frozen = true; this._currentTime = timestamp; } advance(ms) { if (!this._frozen) { throw new Error("Cannot advance time when not frozen."); } this._currentTime += ms; } isFrozen() { return this._frozen; } } exports.TimeState = TimeState;