Skip to content

Commit a449e33

Browse files
authored
Update setback_temperature and setback_hours_per_day types
Refactor setback_temperature and setback_hours_per_day to accept both number and string types, and transform input to number if valid.
1 parent adbc958 commit a449e33

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

heat-stack/types/index.ts

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,22 @@ export const HomeSchema = z.object({
5555
.min(0.6, { message: 'Efficiency must be at least 60%' })
5656
.max(1, { message: 'Efficiency cannot exceed 100%' }),
5757
thermostat_set_point: z.number(),
58-
setback_temperature: z.preprocess(
59-
(val) =>
60-
val === '' || val === undefined || val === null ? undefined : Number(val),
61-
z.number().optional(),
62-
),
63-
setback_hours_per_day: z.preprocess(
64-
(val) =>
65-
val === '' || val === undefined || val === null ? undefined : Number(val),
66-
z.number().optional(),
67-
),
58+
setback_temperature: z
59+
.union([z.number(), z.string()])
60+
.optional()
61+
.transform((val) => {
62+
if (val === '' || val === undefined || val === null) return undefined
63+
const num = Number(val)
64+
return isNaN(num) ? undefined : num
65+
}),
66+
setback_hours_per_day: z
67+
.union([z.number(), z.string()])
68+
.optional()
69+
.transform((val) => {
70+
if (val === '' || val === undefined || val === null) return undefined
71+
const num = Number(val)
72+
return isNaN(num) ? undefined : num
73+
}),
6874
numberOfOccupants: z.number(),
6975
estimatedWaterHeatingEfficiency: z.number(),
7076
standByLosses: z.number(),

0 commit comments

Comments
 (0)