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.

89 lines (88 loc) 3.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { currentPrinterToken: function() { return currentPrinterToken; }, printerApiToken: function() { return printerApiToken; }, printerIdToken: function() { return printerIdToken; }, printerLoginToken: function() { return printerLoginToken; }, printerResolveMiddleware: function() { return printerResolveMiddleware; } }); const _awilix = require("awilix"); const _containertokens = require("../container.tokens"); const _printerapiinterface = require("../services/printer-api.interface"); const printerIdToken = "currentPrinterId"; const printerApiToken = "printerApi"; const currentPrinterToken = "currentPrinter"; const printerLoginToken = "printerLogin"; const printerResolveMiddleware = (key = "id")=>{ return (req, res, next)=>{ const printerCache = req.container.resolve(_containertokens.DITokens.printerCache); const settingsService = req.container.resolve(_containertokens.DITokens.settingsStore); const moonrakerEnabled = settingsService.getServerSettings().experimentalMoonrakerSupport; const prusaLinkEnabled = settingsService.getServerSettings().experimentalPrusaLinkSupport; let scopedPrinter = undefined; let loginDto = undefined; const printerId = req.params[key]; if (printerId) { scopedPrinter = printerCache.getCachedPrinterOrThrow(printerId); loginDto = printerCache.getLoginDto(printerId); req.container.register({ [currentPrinterToken]: (0, _awilix.asValue)(scopedPrinter), [printerLoginToken]: (0, _awilix.asValue)(loginDto), [printerIdToken]: (0, _awilix.asValue)(printerId) }); switch(scopedPrinter.printerType){ case _printerapiinterface.OctoprintType: { const octoprintApiInstance = req.container.resolve(_containertokens.DITokens.octoprintApi); req.container.register({ [printerApiToken]: (0, _awilix.asValue)(octoprintApiInstance) }); break; } case _printerapiinterface.MoonrakerType: { const moonrakerInstance = req.container.resolve(_containertokens.DITokens.moonrakerApi); req.container.register({ [printerApiToken]: moonrakerEnabled ? (0, _awilix.asValue)(moonrakerInstance) : (0, _awilix.asValue)(undefined) }); break; } case _printerapiinterface.PrusaLinkType: { const prusaLinkInstance = req.container.resolve(_containertokens.DITokens.prusaLinkApi); req.container.register({ [printerApiToken]: prusaLinkEnabled ? (0, _awilix.asValue)(prusaLinkInstance) : (0, _awilix.asValue)(undefined) }); } } } else { req.container.register({ [currentPrinterToken]: (0, _awilix.asValue)(undefined), [printerLoginToken]: (0, _awilix.asValue)(undefined), [printerIdToken]: (0, _awilix.asValue)(undefined), [printerApiToken]: (0, _awilix.asValue)(undefined) }); } next(); }; }; //# sourceMappingURL=printer.js.map