UNPKG

@fdm-monster/server

Version:

FDM Monster is a bulk OctoPrint manager to set up, configure and monitor 3D printers. Our aim is to provide extremely optimized websocket performance and reliability.

35 lines (34 loc) 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "SocketFactory", { enumerable: true, get: function() { return SocketFactory; } }); const _containertokens = require("../container.tokens"); const _printerapiinterface = require("./printer-api.interface"); class SocketFactory { cradleService; constructor(cradleService){ this.cradleService = cradleService; } createInstance(printerType) { const settingsStore = this.cradleService.resolve(_containertokens.DITokens.settingsStore); const serverSettings = settingsStore.getServerSettings(); const moonrakerSupport = serverSettings.experimentalMoonrakerSupport; const prusaLinkSupport = serverSettings.experimentalPrusaLinkSupport; if (printerType === _printerapiinterface.OctoprintType) { return this.cradleService.resolve(_containertokens.DITokens.octoPrintSockIoAdapter); } else if (moonrakerSupport && printerType === _printerapiinterface.MoonrakerType) { return this.cradleService.resolve(_containertokens.DITokens.moonrakerWebsocketAdapter); } else if (prusaLinkSupport && printerType === _printerapiinterface.PrusaLinkType) { return this.cradleService.resolve(_containertokens.DITokens.prusaLinkPollingAdapter); } else { throw new Error("PrinterType is unknown, cant pick the right socket adapter"); } } } //# sourceMappingURL=socket.factory.js.map