@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.
111 lines (110 loc) • 3.93 kB
JavaScript
"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, {
exportPrintersFloorsYamlSchema: function() {
return exportPrintersFloorsYamlSchema;
},
importPrinterPositionsSchema: function() {
return importPrinterPositionsSchema;
},
importPrintersFloorsYamlSchema: function() {
return importPrintersFloorsYamlSchema;
},
numberOrStringIdValidator: function() {
return numberOrStringIdValidator;
},
printerPositionsSchema: function() {
return printerPositionsSchema;
}
});
const _zod = require("zod");
const _printerservicevalidation = require("./printer-service.validation");
const _floorservicevalidation = require("./floor-service.validation");
const exportPrintersFloorsYamlSchema = _zod.z.object({
exportPrinters: _zod.z.boolean(),
exportFloorGrid: _zod.z.boolean(),
exportFloors: _zod.z.boolean(),
exportGroups: _zod.z.boolean(),
printerComparisonStrategiesByPriority: _zod.z.array(_zod.z.string().refine((val)=>[
"name",
"url",
"id"
].includes(val))).min(1),
floorComparisonStrategiesByPriority: _zod.z.string().refine((val)=>[
"name",
"floor",
"id"
].includes(val)),
notes: _zod.z.string().optional()
});
const numberOrStringIdValidator = _zod.z.union([
_zod.z.number(),
_zod.z.string()
]);
const printerPositionsSchema = _zod.z.array(_zod.z.object({
printerId: numberOrStringIdValidator,
floorId: numberOrStringIdValidator.optional(),
x: _floorservicevalidation.xValidator,
y: _floorservicevalidation.yValidator
})).min(0);
const importPrinterPositionsSchema = _zod.z.object({
printers: printerPositionsSchema.optional()
});
const importPrintersFloorsYamlSchema = _zod.z.object({
version: _zod.z.string().optional(),
exportedAt: _zod.z.date().optional(),
databaseType: _zod.z.enum([
"mongo",
"sqlite"
]).default("mongo"),
config: _zod.z.object({
exportPrinters: _zod.z.boolean(),
exportFloorGrid: _zod.z.boolean(),
exportFloors: _zod.z.boolean(),
exportGroups: _zod.z.boolean().optional(),
printerComparisonStrategiesByPriority: _zod.z.array(_zod.z.string().refine((val)=>[
"name",
"url",
"id"
].includes(val))).min(1),
floorComparisonStrategiesByPriority: _zod.z.string().refine((val)=>[
"name",
"floor",
"id"
].includes(val))
}),
printers: _zod.z.array(_zod.z.object({
id: numberOrStringIdValidator,
printerURL: _printerservicevalidation.printerUrlValidator,
printerType: _printerservicevalidation.printerTypeValidator,
apiKey: _printerservicevalidation.printerApiKeyValidator,
enabled: _printerservicevalidation.printerEnabledValidator,
name: _printerservicevalidation.printerNameValidator,
printerName: _zod.z.string().optional(),
settingsAppearance: _zod.z.object({
name: _zod.z.string().optional()
}).optional()
})).min(0).default([]),
floors: _zod.z.array(_zod.z.object({
id: numberOrStringIdValidator,
floor: _floorservicevalidation.floorLevelValidator,
name: _floorservicevalidation.floorNameValidator,
printers: printerPositionsSchema
})).min(0).default([]),
groups: _zod.z.array(_zod.z.object({
id: numberOrStringIdValidator,
name: _zod.z.string(),
printers: _zod.z.array(_zod.z.object({
printerId: numberOrStringIdValidator
}))
})).min(0).default([])
});
//# sourceMappingURL=yaml-service.validation.js.map