UNPKG

anyid

Version:

A simple and flexible API to generate various kinds of string ID / code.

51 lines 1.44 kB
"use strict"; 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