feat(store): recordTrain with pruning and getSummary

This commit is contained in:
dev
2026-06-01 16:22:18 -05:00
parent e39758c1af
commit 07215e5617
2 changed files with 45 additions and 1 deletions
+16 -1
View File
@@ -1,4 +1,4 @@
import { parseTarget } from './pure.js';
import { parseTarget, pruneHistory, summary as computeSummary } from './pure.js';
const KEY_TARGETS = 'tat.targets';
const KEY_HISTORY = 'tat.history';
@@ -78,4 +78,19 @@ export class Store {
this.prefs.pos = { x: pos.x, y: pos.y };
return this._saveJson(KEY_PREFS, this.prefs);
}
recordTrain(attr, delta, ts = Date.now()) {
if (typeof delta !== 'number' || !Number.isFinite(delta) || delta <= 0) {
return false;
}
const list = this.history[attr] || [];
list.push({ ts, delta });
this.history[attr] = pruneHistory(list, ts);
return this._saveJson(KEY_HISTORY, this.history);
}
getSummary(attr, now = Date.now()) {
const list = this.history[attr] || [];
return computeSummary(list, now);
}
}