refactor: Migrate config schema from Zod v3 to Zod v4 (#2357)

This commit is contained in:
Dermot Duffy
2026-02-18 21:47:43 -08:00
committed by GitHub
parent a15376602f
commit 529500ed94
51 changed files with 1110 additions and 443 deletions
+1 -1
View File
@@ -22,6 +22,6 @@ export const ptzControlsConfigSchema = z.object({
hide_zoom: z.boolean().default(ptzControlsDefaults.hide_zoom),
hide_home: z.boolean().default(ptzControlsDefaults.hide_home),
style: z.object({}).passthrough().optional(),
style: z.looseObject({}).optional(),
});
export type PTZControlsConfig = z.infer<typeof ptzControlsConfigSchema>;
@@ -5,7 +5,7 @@ export const THUMBNAIL_WIDTH_MIN = 75;
export const THUMBNAIL_WIDTH_DEFAULT = 100;
export const THUMBNAIL_WIDTH_MAX = 300;
const thumbnailControlsBaseDefaults = {
export const thumbnailControlsBaseDefaults = {
size: THUMBNAIL_WIDTH_DEFAULT,
show_details: true,
show_favorite_control: true,
+9 -3
View File
@@ -1,8 +1,12 @@
import { z } from 'zod';
export const imageConfigDefault = {
export const imageBaseConfigDefault = {
mode: 'auto' as const,
refresh_seconds: 1,
};
export const imageConfigDefault = {
...imageBaseConfigDefault,
zoomable: true,
};
@@ -10,11 +14,13 @@ const IMAGE_MODES = ['auto', 'camera', 'entity', 'screensaver', 'url'] as const;
export type ImageMode = (typeof IMAGE_MODES)[number];
export const imageBaseConfigSchema = z.object({
mode: z.enum(IMAGE_MODES).default(imageConfigDefault.mode),
mode: z.enum(IMAGE_MODES).default(imageBaseConfigDefault.mode),
refresh_seconds: z.number().min(0).default(imageConfigDefault.refresh_seconds),
refresh_seconds: z.number().min(0).default(imageBaseConfigDefault.refresh_seconds),
url: z.string().optional(),
entity: z.string().optional(),
entity_parameters: z.string().optional(),
});
export type ImageBaseConfig = z.infer<typeof imageBaseConfigSchema>;