@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.
30 lines (29 loc) • 1.08 kB
JavaScript
import { InternalServerException, ValidationException } from "../exceptions/runtime.exceptions.js";
import { currentPrinterToken, printerApiToken, printerIdToken, printerLoginToken } from "./printer.js";
//#region src/middleware/printer-resolver.ts
function getScopedPrinter(req) {
const errors = [];
const resolve = (token) => {
try {
const dep = req.container.resolve(token);
if (!dep) errors.push(`Scoped Dependency '${token}' was not resolved.`);
return dep;
} catch {
throw new InternalServerException(`Dependency ${token} could not be resolved. Aborted request.`);
}
};
const printerApi = resolve(printerApiToken);
const loginDto = resolve(printerLoginToken);
const printerDto = resolve(currentPrinterToken);
const printerId = resolve(printerIdToken);
if (errors.length) throw new ValidationException(errors);
return {
[printerApiToken]: printerApi,
[printerLoginToken]: loginDto,
[currentPrinterToken]: printerDto,
[printerIdToken]: printerId
};
}
//#endregion
export { getScopedPrinter };
//# sourceMappingURL=printer-resolver.js.map