diff --git a/app.mts b/app.mts index e5027cd8..aa76de69 100644 --- a/app.mts +++ b/app.mts @@ -62,7 +62,7 @@ const drivers: Record = { [DeviceType.Ata]: 'melcloud', [DeviceType.Atw]: 'melcloud_atw', [DeviceType.Erv]: 'melcloud_erv', -} as const +} const hasChangelogLanguage = ( versionChangelog: object, @@ -124,8 +124,11 @@ const getDriverLoginSetting = ( title: '', type: isPassword ? 'password' : 'text', } - acc[key][option.endsWith('Placeholder') ? 'placeholder' : 'title'] = - label[language] ?? label.en + acc[key] = { + ...acc[key], + [option.endsWith('Placeholder') ? 'placeholder' : 'title']: + label[language] ?? label.en, + } return acc }, {}), ) diff --git a/drivers/melcloud/device.mts b/drivers/melcloud/device.mts index 49f7b6bd..6018bd48 100644 --- a/drivers/melcloud/device.mts +++ b/drivers/melcloud/device.mts @@ -48,7 +48,7 @@ export default class MELCloudDeviceAta extends BaseMELCloudDevice, vertical: ((value: Vertical) => Vertical[value]) as ConvertFromDevice, - } as const + } protected readonly thermostatMode = ThermostatModeAta @@ -64,5 +64,5 @@ export default class MELCloudDeviceAta extends BaseMELCloudDevice, vertical: ((value: keyof typeof Vertical) => Vertical[value]) as ConvertToDevice, - } as const + } } diff --git a/drivers/melcloud_atw/device.mts b/drivers/melcloud_atw/device.mts index ecf0a876..4596f8e1 100644 --- a/drivers/melcloud_atw/device.mts +++ b/drivers/melcloud_atw/device.mts @@ -113,7 +113,7 @@ export default class MELCloudDeviceAtw extends BaseMELCloudDevice, 'thermostat_mode.zone2': ((value: keyof typeof OperationModeZone) => OperationModeZone[value]) as ConvertToDevice, - } as const + } protected override async setCapabilityValues( data: ListDeviceData, diff --git a/drivers/melcloud_atw/driver.mts b/drivers/melcloud_atw/driver.mts index b72f0fa1..7d25e0ca 100644 --- a/drivers/melcloud_atw/driver.mts +++ b/drivers/melcloud_atw/driver.mts @@ -42,11 +42,11 @@ export default class MELCloudDriverAtw extends BaseMELCloudDriver)[] = [ 'target_temperature.flow_cool', - ] as const + ] readonly #zone2Capabilities: (keyof Capabilities)[] = [ 'measure_temperature.zone2', @@ -54,11 +54,11 @@ export default class MELCloudDriverAtw extends BaseMELCloudDriver)[] = [ 'target_temperature.flow_cool_zone2', - ] as const + ] public getRequiredCapabilities({ CanCool: canCool, diff --git a/drivers/melcloud_erv/device.mts b/drivers/melcloud_erv/device.mts index 7a5d8436..674c35f7 100644 --- a/drivers/melcloud_erv/device.mts +++ b/drivers/melcloud_erv/device.mts @@ -32,7 +32,7 @@ export default class MELCloudDeviceErv extends BaseMELCloudDevice, - } as const + } protected readonly thermostatMode = ThermostatModeErv @@ -44,5 +44,5 @@ export default class MELCloudDeviceErv extends BaseMELCloudDevice = { thermostat_mode: ((value: keyof typeof VentilationMode) => VentilationMode[value]) as ConvertToDevice, - } as const + } } diff --git a/mixins/with-timers.mts b/mixins/with-timers.mts index 33388048..046dab2e 100644 --- a/mixins/with-timers.mts +++ b/mixins/with-timers.mts @@ -6,7 +6,10 @@ import type Homey from 'homey/lib/Homey' interface TimerOptions { readonly actionType: string readonly timerType: 'setInterval' | 'setTimeout' - readonly timerWords: { dateSpecifier: string; timeSpecifier: string } + readonly timerWords: { + readonly dateSpecifier: string + readonly timeSpecifier: string + } } type HomeyClass = new ( @@ -20,8 +23,8 @@ type Timer = ( ) => NodeJS.Timeout type TimerClass = new (...args: any[]) => { - setInterval: Timer - setTimeout: Timer + readonly setInterval: Timer + readonly setTimeout: Timer } const FIRST_CHAR = 0 diff --git a/settings/index.mts b/settings/index.mts index 982c7a6c..06257bec 100644 --- a/settings/index.mts +++ b/settings/index.mts @@ -43,7 +43,7 @@ const PLURAL_EXCEPTION_13 = 13 const PLURAL_EXCEPTION_14 = 14 const PLURAL_THRESHOLD = 2 -const frostProtectionTemperatureRange = { max: 16, min: 4 } as const +const frostProtectionTemperatureRange = { max: 16, min: 4 } const FROST_PROTECTION_TEMPERATURE_GAP = 2 const zoneMapping: Partial>> = {} diff --git a/types/ata.mts b/types/ata.mts index b2d46c4a..766ee17a 100644 --- a/types/ata.mts +++ b/types/ata.mts @@ -87,7 +87,7 @@ export const setCapabilityTagMappingAta: Record< target_temperature: 'SetTemperature', thermostat_mode: 'OperationMode', vertical: 'VaneVertical', -} as const +} export const getCapabilityTagMappingAta: Record< keyof GetCapabilitiesAta, @@ -95,7 +95,7 @@ export const getCapabilityTagMappingAta: Record< > = { 'alarm_generic.silent': 'SetFanSpeed', measure_temperature: 'RoomTemperature', -} as const +} export const listCapabilityTagMappingAta: Record< keyof ListCapabilitiesAta, @@ -108,7 +108,7 @@ export const listCapabilityTagMappingAta: Record< measure_signal_strength: 'WifiSignalStrength', 'measure_temperature.outdoor': 'OutdoorTemperature', vertical: 'VaneVerticalDirection', -} as const +} export const energyCapabilityTagMappingAta: Record< keyof EnergyCapabilitiesAta, @@ -149,7 +149,7 @@ export const energyCapabilityTagMappingAta: Record< 'meter_power.fan': ['TotalFanConsumed'], 'meter_power.heating': ['TotalHeatingConsumed'], 'meter_power.other': ['TotalOtherConsumed'], -} as const +} export interface FlowArgsAta extends SetCapabilitiesAta { readonly device: MELCloudDeviceAta diff --git a/types/atw.mts b/types/atw.mts index 1e56c03a..1a9fbe40 100644 --- a/types/atw.mts +++ b/types/atw.mts @@ -44,7 +44,7 @@ const curve: CapabilitiesOptionsValues<'curve'> = { no: 'Varmekurve', sv: 'Värmekurva', }, -} as const +} const flow: CapabilitiesOptionsValues<'flow'> = { id: 'flow', @@ -57,7 +57,7 @@ const flow: CapabilitiesOptionsValues<'flow'> = { no: 'Fast fremløpstemperatur', sv: 'Fast framledningstemperatur', }, -} as const +} const room: CapabilitiesOptionsValues<'room'> = { id: 'room', @@ -70,7 +70,7 @@ const room: CapabilitiesOptionsValues<'room'> = { no: 'Innendørs føler', sv: 'Inomhusgivare', }, -} as const +} const COOL_SUFFIX = 'cool' @@ -109,7 +109,7 @@ const thermostatModeValuesAtw = [ curve, createCoolObject(room), createCoolObject(flow), -] as const +] export const getCapabilitiesOptionsAtw = ({ CanCool: canCool, @@ -245,7 +245,7 @@ export const setCapabilityTagMappingAtw: Record< 'target_temperature.zone2': 'SetTemperatureZone2', thermostat_mode: 'OperationModeZone1', 'thermostat_mode.zone2': 'OperationModeZone2', -} as const +} export const getCapabilityTagMappingAtw: Record< keyof GetCapabilitiesAtw, @@ -256,7 +256,7 @@ export const getCapabilityTagMappingAtw: Record< 'measure_temperature.tank_water': 'TankWaterTemperature', 'measure_temperature.zone2': 'RoomTemperatureZone2', operational_state: 'OperationMode', -} as const +} export const listCapabilityTagMappingAtw: Record< keyof ListCapabilitiesAtw, @@ -283,7 +283,7 @@ export const listCapabilityTagMappingAtw: Record< 'measure_temperature.tank_water_mixing': 'MixingTankWaterTemperature', 'measure_temperature.target_curve': 'TargetHCTemperatureZone1', 'measure_temperature.target_curve_zone2': 'TargetHCTemperatureZone2', -} as const +} export const energyCapabilityTagMappingAtw: Record< keyof EnergyCapabilitiesAtw, @@ -348,7 +348,7 @@ export const energyCapabilityTagMappingAtw: Record< 'meter_power.produced_daily_hotwater': ['TotalHotWaterProduced'], 'meter_power.produced_heating': ['TotalHeatingProduced'], 'meter_power.produced_hotwater': ['TotalHotWaterProduced'], -} as const +} export interface CapabilitiesOptionsAtw { readonly 'target_temperature.flow_cool': RangeOptions diff --git a/types/common.mts b/types/common.mts index 5bb09310..90ba6f05 100644 --- a/types/common.mts +++ b/types/common.mts @@ -66,7 +66,7 @@ export const zoneModel = { buildings: BuildingModel, devices: DeviceModel, floors: FloorModel, -} as const +} export const getCapabilitiesOptionsAtaErv = ({ HasAutomaticFanSpeed: hasAutomaticFanSpeed, @@ -99,7 +99,7 @@ const auto: CapabilitiesOptionsValues<'auto'> = { no: 'Automatisk', sv: 'Automatiskt', }, -} as const +} const fast: CapabilitiesOptionsValues<'fast'> = { id: 'fast', @@ -112,7 +112,7 @@ const fast: CapabilitiesOptionsValues<'fast'> = { no: 'Rask', sv: 'Snabb', }, -} as const +} const moderate: CapabilitiesOptionsValues<'moderate'> = { id: 'moderate', @@ -125,7 +125,7 @@ const moderate: CapabilitiesOptionsValues<'moderate'> = { no: 'Moderat', sv: 'Måttlig', }, -} as const +} const slow: CapabilitiesOptionsValues<'slow'> = { id: 'slow', @@ -138,7 +138,7 @@ const slow: CapabilitiesOptionsValues<'slow'> = { no: 'Sakte', sv: 'Långsam', }, -} as const +} const createVeryObject = ({ id, @@ -166,7 +166,7 @@ export const fanSpeedValues = [ moderate, slow, createVeryObject(slow), -] as const +] export interface AreaZone extends Omit { readonly model: 'areas' @@ -213,13 +213,13 @@ export interface DriverCapabilitiesOptions { export interface DriverSetting { readonly driverId: string readonly id: string - title: string + readonly title: string readonly type: string readonly groupId?: string readonly groupLabel?: string readonly max?: number readonly min?: number - placeholder?: string + readonly placeholder?: string readonly units?: string readonly values?: readonly { readonly id: string; readonly label: string }[] } diff --git a/types/erv.mts b/types/erv.mts index b6809921..03db63ea 100644 --- a/types/erv.mts +++ b/types/erv.mts @@ -49,7 +49,7 @@ export const setCapabilityTagMappingErv: Record< fan_speed: 'SetFanSpeed', onoff: 'Power', thermostat_mode: 'VentilationMode', -} as const +} export const getCapabilityTagMappingErv: Record< keyof GetCapabilitiesErv, @@ -58,7 +58,7 @@ export const getCapabilityTagMappingErv: Record< measure_co2: 'RoomCO2Level', measure_temperature: 'RoomTemperature', 'measure_temperature.outdoor': 'OutdoorTemperature', -} as const +} export const listCapabilityTagMappingErv: Record< keyof ListCapabilitiesErv, @@ -66,9 +66,9 @@ export const listCapabilityTagMappingErv: Record< > = { measure_pm25: 'PM25Level', measure_signal_strength: 'WifiSignalStrength', -} as const +} -export const energyCapabilityTagMappingErv: Record = {} as const +export const energyCapabilityTagMappingErv: Record = {} export interface FlowArgsErv extends SetCapabilitiesErv { readonly device: MELCloudDeviceErv diff --git a/widgets/ata-group-setting/public/index.mts b/widgets/ata-group-setting/public/index.mts index e5eace48..0d2c4494 100644 --- a/widgets/ata-group-setting/public/index.mts +++ b/widgets/ata-group-setting/public/index.mts @@ -17,12 +17,12 @@ import type { } from '../../../types/common.mts' declare interface Homey extends HomeyWidget { - getSettings: () => HomeySettings + readonly getSettings: () => HomeySettings } interface ResetParams { - isSomethingOn: boolean - mode: number + readonly isSomethingOn: boolean + readonly mode: number } type AnimatedElement = 'flame' | 'leaf' | 'snowflake' | 'sun' diff --git a/widgets/charts/public/index.mts b/widgets/charts/public/index.mts index 4aac9255..c46714fd 100644 --- a/widgets/charts/public/index.mts +++ b/widgets/charts/public/index.mts @@ -13,7 +13,7 @@ import type { } from '../../../types/common.mts' declare interface Homey extends HomeyWidget { - getSettings: () => HomeySettings + readonly getSettings: () => HomeySettings } const FONT_SIZE_SMALL = '14px'