diff --git a/app.ts b/app.ts index 8b78cc2..6b1ca3f 100644 --- a/app.ts +++ b/app.ts @@ -5,7 +5,7 @@ import { Settings as LuxonSettings } from 'luxon' export = class AristonApp extends App { public readonly aristonAPI = new AristonAPI(this.homey.settings, this) - public async onInit(): Promise { + public override async onInit(): Promise { LuxonSettings.defaultZone = this.homey.clock.getTimezone() await this.aristonAPI.applyLogin() } diff --git a/decorators/addToLogs.ts b/decorators/addToLogs.ts index 2b5dca4..7d1e9aa 100644 --- a/decorators/addToLogs.ts +++ b/decorators/addToLogs.ts @@ -7,11 +7,11 @@ const addToLogs = SimpleClass>(...logs: string[]) => (target: T, context: ClassDecoratorContext): T => { class LogsDecorator extends target { - public error(...args: unknown[]): void { + public override error(...args: unknown[]): void { this.#commonLog('error', ...args) } - public log(...args: unknown[]): void { + public override log(...args: unknown[]): void { this.#commonLog('log', ...args) } diff --git a/drivers/nuos/device.ts b/drivers/nuos/device.ts index 52d79d1..e6126c8 100644 --- a/drivers/nuos/device.ts +++ b/drivers/nuos/device.ts @@ -159,35 +159,35 @@ class NuosDevice extends Device { readonly #id = (this.getData() as DeviceDetails['data']).id - public async addCapability(capability: string): Promise { + public override async addCapability(capability: string): Promise { if (!this.hasCapability(capability)) { await super.addCapability(capability) } } - public getCapabilityOptions( - capability: K, - ): CapabilityOptionsEntries[K] { + public override getCapabilityOptions< + K extends keyof CapabilityOptionsEntries, + >(capability: K): CapabilityOptionsEntries[K] { return super.getCapabilityOptions(capability) as CapabilityOptionsEntries[K] } - public getCapabilityValue( + public override getCapabilityValue( capability: K, ): Capabilities[K] { return super.getCapabilityValue(capability) as Capabilities[K] } - public getSetting( + public override getSetting( setting: K, ): NonNullable { return super.getSetting(setting) as NonNullable } - public onDeleted(): void { + public override onDeleted(): void { this.homey.clearTimeout(this.#syncTimeout) } - public async onInit(): Promise { + public override async onInit(): Promise { await this.setWarning(null) await this.#handleCapabilities() this.#registerCapabilityListeners() @@ -211,7 +211,7 @@ class NuosDevice extends Device { ) } - public async onSettings({ + public override async onSettings({ changedKeys, newSettings, }: { @@ -240,25 +240,24 @@ class NuosDevice extends Device { } } - public async onUninit(): Promise { + public override async onUninit(): Promise { this.onDeleted() return Promise.resolve() } - public async removeCapability(capability: string): Promise { + public override async removeCapability(capability: string): Promise { if (this.hasCapability(capability)) { await super.removeCapability(capability) } } - public async setCapabilityOptions( - capability: K, - options: CapabilityOptionsEntries[K], - ): Promise { + public override async setCapabilityOptions< + K extends keyof CapabilityOptionsEntries, + >(capability: K, options: CapabilityOptionsEntries[K]): Promise { await super.setCapabilityOptions(capability, options) } - public async setCapabilityValue( + public override async setCapabilityValue( capability: K, value: Capabilities[K], ): Promise { @@ -268,7 +267,7 @@ class NuosDevice extends Device { } } - public async setSettings(settings: Settings): Promise { + public override async setSettings(settings: Settings): Promise { const newSettings = Object.fromEntries( Object.entries(settings).filter( ([key, value]) => value !== this.getSetting(key as keyof Settings), @@ -284,7 +283,7 @@ class NuosDevice extends Device { } } - public async setWarning(warning: string | null): Promise { + public override async setWarning(warning: string | null): Promise { if (warning !== null) { await super.setWarning(warning) } diff --git a/drivers/nuos/driver.ts b/drivers/nuos/driver.ts index 66d481f..740f3cb 100644 --- a/drivers/nuos/driver.ts +++ b/drivers/nuos/driver.ts @@ -13,12 +13,12 @@ export = class NuosDriver extends Driver { this.manifest as ManifestDriver ).capabilities.filter((capability) => capability.startsWith('onoff.')) - public async onInit(): Promise { + public override async onInit(): Promise { this.#registerRunListeners() return Promise.resolve() } - public async onPair(session: PairSession): Promise { + public override async onPair(session: PairSession): Promise { session.setHandler('showView', async (view) => { if (view === 'loading') { if (await this.#aristonAPI.applyLogin()) { @@ -35,7 +35,7 @@ export = class NuosDriver extends Driver { return Promise.resolve() } - public async onRepair(session: PairSession): Promise { + public override async onRepair(session: PairSession): Promise { session.setHandler('login', async (data: LoginCredentials) => this.#aristonAPI.applyLogin(data), ) diff --git a/tsconfig.json b/tsconfig.json index 222dd08..f9c1bdf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,6 +2,7 @@ "extends": "@tsconfig/node21/tsconfig.json", "compilerOptions": { "lib": ["ESNext", "DOM"], + "noImplicitOverride": true, "outDir": ".homeybuild/", "sourceMap": true }