@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.
28 lines (27 loc) • 1.17 kB
JavaScript
import { DITokens } from "../container.tokens.js";
import "./printer-api.interface.js";
//#region src/services/printer-api.factory.ts
var PrinterApiFactory = class {
constructor(cradleService) {
this.cradleService = cradleService;
}
getById(id) {
const login = this.cradleService.resolve(DITokens.printerCache).getLoginDto(id);
const printerApi = this.getScopedPrinter(login);
if (login.printerType === 3 && "setPrinterId" in printerApi) printerApi.setPrinterId(id);
return printerApi;
}
getScopedPrinter(login) {
let printerApi;
if (login.printerType === 0) printerApi = this.cradleService.resolve(DITokens.octoprintApi);
else if (login.printerType === 1) printerApi = this.cradleService.resolve(DITokens.moonrakerApi);
else if (login.printerType === 2) printerApi = this.cradleService.resolve(DITokens.prusaLinkApi);
else if (login.printerType === 3) printerApi = this.cradleService.resolve(DITokens.bambuApi);
else throw new Error("PrinterType is unknown, cant pick the right socket adapter");
printerApi.login = login;
return printerApi;
}
};
//#endregion
export { PrinterApiFactory };
//# sourceMappingURL=printer-api.factory.js.map