matterbridge-roborock-vacuum-plugin
Version:
Matterbridge Roborock Vacuum Plugin
52 lines • 1.82 kB
JavaScript
/**
* Platform state container.
* Holds ephemeral runtime state for the platform (device states, last home data).
* Uses strict types (no `any`) and provides simple accessor/mutator API.
*/
export class PlatformState {
deviceStates = new Map();
lastHomeData = new Map();
startupCompleted = false;
// ─── Startup State ──────────────────────────────────────────────────────────
get isStartupCompleted() {
return this.startupCompleted;
}
setStartupCompleted(completed) {
this.startupCompleted = completed;
}
// ─── Device State ───────────────────────────────────────────────────────────
setDeviceState(duid, state) {
if (!duid)
return;
this.deviceStates.set(duid, state);
}
getDeviceState(duid) {
return this.deviceStates.get(duid);
}
updateDeviceState(duid, patch) {
if (!duid)
return;
const existing = this.deviceStates.get(duid) ?? {};
this.deviceStates.set(duid, { ...existing, ...patch });
}
setLastHomeData(duid, data) {
if (!duid)
return;
this.lastHomeData.set(duid, data);
}
getLastHomeData(duid) {
return this.lastHomeData.get(duid);
}
clearDevice(duid) {
this.deviceStates.delete(duid);
this.lastHomeData.delete(duid);
}
clearAll() {
this.deviceStates.clear();
this.lastHomeData.clear();
}
getAllDeviceStates() {
return new Map(this.deviceStates);
}
}
//# sourceMappingURL=platformState.js.map