timewarp-sim
Version:
🕰️ Deterministic time simulation and manipulation library for TypeScript
35 lines (34 loc) • 862 B
JavaScript
;
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;