@fdm-monster/server
Version:
FDM Monster is a bulk OctoPrint, Klipper, PrusaLink and BambuLab manager to set up, configure and monitor 3D printers. Our aim is to provide neat overview over your farm.
37 lines (36 loc) • 1.39 kB
JavaScript
import { socketIoConnectedEvent } from "../constants/event.constants.js";
import { IO_MESSAGES } from "../state/socket-io.gateway.js";
//#region src/tasks/socketio.task.ts
var SocketIoTask = class SocketIoTask {
logger;
constructor(loggerFactory, socketIoGateway, floorStore, printerSocketStore, printerEventsCache, printerCache, fileUploadTrackerCache, eventEmitter2) {
this.socketIoGateway = socketIoGateway;
this.floorStore = floorStore;
this.printerSocketStore = printerSocketStore;
this.printerEventsCache = printerEventsCache;
this.printerCache = printerCache;
this.fileUploadTrackerCache = fileUploadTrackerCache;
this.eventEmitter2 = eventEmitter2;
this.logger = loggerFactory(SocketIoTask.name);
this.eventEmitter2.on(socketIoConnectedEvent, async () => {
await this.sendUpdate();
});
}
async run() {
await this.sendUpdate();
}
async sendUpdate() {
const floors = await this.floorStore.listCache();
const socketIoData = {
printers: await this.printerCache.listCachedPrinters(true),
floors,
socketStates: this.printerSocketStore.getSocketStatesById(),
printerEvents: await this.printerEventsCache.getAllKeyValues(),
trackedUploads: this.fileUploadTrackerCache.getUploads()
};
this.socketIoGateway.send(IO_MESSAGES.Update, socketIoData);
}
};
//#endregion
export { SocketIoTask };
//# sourceMappingURL=socketio.task.js.map