@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.
23 lines (22 loc) • 1.18 kB
JavaScript
import { DITokens } from "../container.tokens.js";
import "./printer-api.interface.js";
//#region src/services/socket.factory.ts
var SocketFactory = class {
constructor(cradleService) {
this.cradleService = cradleService;
}
createInstance(printerType) {
const serverSettings = this.cradleService.resolve(DITokens.settingsStore).getServerSettings();
const moonrakerSupport = serverSettings.experimentalMoonrakerSupport;
const prusaLinkSupport = serverSettings.experimentalPrusaLinkSupport;
const bambuSupport = serverSettings.experimentalBambuSupport;
if (printerType === 0) return this.cradleService.resolve(DITokens.octoPrintSockIoAdapter);
else if (moonrakerSupport && printerType === 1) return this.cradleService.resolve(DITokens.moonrakerWebsocketAdapter);
else if (prusaLinkSupport && printerType === 2) return this.cradleService.resolve(DITokens.prusaLinkPollingAdapter);
else if (bambuSupport && printerType === 3) return this.cradleService.resolve(DITokens.bambuMqttAdapter);
else throw new Error("PrinterType is unknown, cant pick the right socket adapter");
}
};
//#endregion
export { SocketFactory };
//# sourceMappingURL=socket.factory.js.map