anyid
Version:
A simple and flexible API to generate various kinds of string ID / code.
51 lines • 1.44 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const core_1 = require("./core");
class TimeValue extends core_1.Value {
constructor(owner, divisor) {
super(owner);
this.divisor = divisor;
this.epoch = 0;
}
value() {
const ms = Date.now() - this.epoch;
const t = (this.divisor > 1) ? Math.floor(ms / this.divisor) : ms;
return this.returnValue(t);
}
since(t) {
this.epoch = t.getTime();
}
}
exports.TimeValue = TimeValue;
class Time {
time(unit = 'ms') {
let divisor = 1;
switch (unit) {
case 's':
divisor = 1000;
break;
case 'm':
divisor = 60000;
break;
case 'h':
divisor = 3600000;
break;
case 'd':
divisor = 86400000;
break;
}
this.addValue(new TimeValue(this, divisor));
return this;
}
since(t) {
assert_1.default(this.lastValue() instanceof TimeValue, 'since() must follow time()');
this.lastValue().since(t);
return this;
}
}
exports.Time = Time;
//# sourceMappingURL=time.js.map