From e642f7c86a25e329c3f367f2f40c6634c207caee Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Thu, 12 Sep 2024 21:36:57 +0200 Subject: [PATCH] fix(ignore): Sync eslint settings from zhc (#23951) * fix(ignore): Sync eslint settings from zhc * u --- eslint.config.mjs | 2 +- lib/controller.ts | 8 ++++---- lib/extension/bridge.ts | 14 +++++++------- lib/extension/frontend.ts | 2 +- lib/extension/homeassistant.ts | 4 ++-- lib/extension/networkMap.ts | 6 +++--- lib/mqtt.ts | 4 ++-- lib/util/utils.ts | 2 +- lib/zigbee.ts | 12 ++++++------ 9 files changed, 27 insertions(+), 27 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 1e26a89f44..89c17e5b39 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -20,7 +20,7 @@ export default tseslint.config( '@typescript-eslint/no-explicit-any': 'error', '@typescript-eslint/no-unused-vars': 'error', 'array-bracket-spacing': ['error', 'never'], - 'no-return-await': 'error', + '@typescript-eslint/return-await': ['error', 'always'], 'object-curly-spacing': ['error', 'never'], '@typescript-eslint/no-floating-promises': 'error', }, diff --git a/lib/controller.ts b/lib/controller.ts index c46482e3f6..cd2a2f3f09 100644 --- a/lib/controller.ts +++ b/lib/controller.ts @@ -165,7 +165,7 @@ export class Controller { logger.error('Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions'); logger.error('Exiting...'); logger.error((error as Error).stack!); - return this.exit(1); + return await this.exit(1); } // Disable some legacy options on new network creation @@ -211,7 +211,7 @@ export class Controller { } catch (error) { logger.error(`MQTT failed to connect, exiting... (${(error as Error).message})`); await this.zigbee.stop(); - return this.exit(1); + return await this.exit(1); } // Call extensions @@ -279,12 +279,12 @@ export class Controller { } this.sdNotify?.stopWatchdogMode(); - return this.exit(code, restart); + return await this.exit(code, restart); } async exit(code: number, restart = false): Promise { await logger.end(); - return this.exitCallback(code, restart); + return await this.exitCallback(code, restart); } @bind async onZigbeeAdapterDisconnected(): Promise { diff --git a/lib/extension/bridge.ts b/lib/extension/bridge.ts index cad29657a8..6187e53619 100644 --- a/lib/extension/bridge.ts +++ b/lib/extension/bridge.ts @@ -141,7 +141,7 @@ export default class Bridge extends Extension { // Zigbee events const publishEvent = async (type: string, data: KeyValue): Promise => - this.mqtt.publish('bridge/event', stringify({type, data}), {retain: false, qos: 0}); + await this.mqtt.publish('bridge/event', stringify({type, data}), {retain: false, qos: 0}); this.eventBus.onDeviceJoined(this, async (data) => { this.lastJoinedDeviceIeeeAddr = data.device.ieeeAddr; await this.publishDevices(); @@ -213,11 +213,11 @@ export default class Bridge extends Extension { */ @bind async deviceOptions(message: KeyValue | string): Promise { - return this.changeEntityOptions('device', message); + return await this.changeEntityOptions('device', message); } @bind async groupOptions(message: KeyValue | string): Promise { - return this.changeEntityOptions('group', message); + return await this.changeEntityOptions('group', message); } @bind async bridgeOptions(message: KeyValue | string): Promise { @@ -256,11 +256,11 @@ export default class Bridge extends Extension { } @bind async deviceRemove(message: string | KeyValue): Promise { - return this.removeEntity('device', message); + return await this.removeEntity('device', message); } @bind async groupRemove(message: string | KeyValue): Promise { - return this.removeEntity('group', message); + return await this.removeEntity('group', message); } @bind async healthCheck(message: string | KeyValue): Promise { @@ -289,11 +289,11 @@ export default class Bridge extends Extension { } @bind async deviceRename(message: string | KeyValue): Promise { - return this.renameEntity('device', message); + return await this.renameEntity('device', message); } @bind async groupRename(message: string | KeyValue): Promise { - return this.renameEntity('group', message); + return await this.renameEntity('group', message); } @bind async restart(message: string | KeyValue): Promise { diff --git a/lib/extension/frontend.ts b/lib/extension/frontend.ts index a6efc18ada..2de05efbb9 100644 --- a/lib/extension/frontend.ts +++ b/lib/extension/frontend.ts @@ -113,7 +113,7 @@ export default class Frontend extends Extension { this.wss?.close(); /* istanbul ignore else */ if (this.server) { - return new Promise((cb: () => void) => this.server!.close(cb)); + return await new Promise((cb: () => void) => this.server!.close(cb)); } } diff --git a/lib/extension/homeassistant.ts b/lib/extension/homeassistant.ts index 962a8cae1e..f2112529d5 100644 --- a/lib/extension/homeassistant.ts +++ b/lib/extension/homeassistant.ts @@ -485,8 +485,8 @@ export default class HomeAssistant extends Extension { this.eventBus.onDeviceInterview(this, this.onZigbeeEvent); this.eventBus.onDeviceMessage(this, this.onZigbeeEvent); this.eventBus.onScenesChanged(this, this.onScenesChanged); - this.eventBus.onEntityOptionsChanged(this, async (data) => this.discover(data.entity)); - this.eventBus.onExposesChanged(this, async (data) => this.discover(data.device)); + this.eventBus.onEntityOptionsChanged(this, async (data) => await this.discover(data.entity)); + this.eventBus.onExposesChanged(this, async (data) => await this.discover(data.device)); this.mqtt.subscribe(this.statusTopic); this.mqtt.subscribe(DEFAULT_STATUS_TOPIC); diff --git a/lib/extension/networkMap.ts b/lib/extension/networkMap.ts index c7012ff8ec..e88e128d4c 100644 --- a/lib/extension/networkMap.ts +++ b/lib/extension/networkMap.ts @@ -220,7 +220,7 @@ export default class NetworkMap extends Extension { } catch { // Network is possibly congested, sleep 5 seconds to let the network settle. await utils.sleep(5); - return request(); + return await request(); } }; @@ -233,7 +233,7 @@ export default class NetworkMap extends Extension { await utils.sleep(1); // sleep 1 second between each scan to reduce stress on network. try { - const result = await requestWithRetry(async () => device.zh.lqi()); + const result = await requestWithRetry(async () => await device.zh.lqi()); lqis.set(device, result); logger.debug(`LQI succeeded for '${device.name}'`); } catch (error) { @@ -244,7 +244,7 @@ export default class NetworkMap extends Extension { if (includeRoutes) { try { - const result = await requestWithRetry(async () => device.zh.routingTable()); + const result = await requestWithRetry(async () => await device.zh.routingTable()); routingTables.set(device, result); logger.debug(`Routing table succeeded for '${device.name}'`); } catch (error) { diff --git a/lib/mqtt.ts b/lib/mqtt.ts index bfafe25887..fc9f46ef8c 100644 --- a/lib/mqtt.ts +++ b/lib/mqtt.ts @@ -80,7 +80,7 @@ export default class MQTT { options.rejectUnauthorized = false; } - return new Promise((resolve, reject) => { + return await new Promise((resolve, reject) => { this.client = mqtt.connect(mqttSettings.server, options); // /~https://github.com/Koenkk/zigbee2mqtt/issues/9822 this.client.stream.setMaxListeners(0); @@ -206,7 +206,7 @@ export default class MQTT { actualOptions.retain = false; } - return new Promise((resolve) => { + return await new Promise((resolve) => { this.client.publish(topic, payload, actualOptions, () => resolve()); }); } diff --git a/lib/util/utils.ts b/lib/util/utils.ts index 9513ab5a3f..2748ec881a 100644 --- a/lib/util/utils.ts +++ b/lib/util/utils.ts @@ -53,7 +53,7 @@ async function getZigbee2MQTTVersion(includeCommitHash = true): Promise<{commitH return {version: packageJSON.version, commitHash: undefined}; } - return new Promise((resolve) => { + return await new Promise((resolve) => { const version = packageJSON.version; git.getLastCommit((err: Error, commit: {shortHash: string}) => { diff --git a/lib/zigbee.ts b/lib/zigbee.ts index 2ce66b1080..4ead28e382 100644 --- a/lib/zigbee.ts +++ b/lib/zigbee.ts @@ -199,7 +199,7 @@ export default class Zigbee { } async getCoordinatorVersion(): Promise { - return this.herdsman.getCoordinatorVersion(); + return await this.herdsman.getCoordinatorVersion(); } isStopping(): boolean { @@ -207,7 +207,7 @@ export default class Zigbee { } async backup(): Promise { - return this.herdsman.backup(); + return await this.herdsman.backup(); } async coordinatorCheck(): Promise<{missingRouters: Device[]}> { @@ -216,7 +216,7 @@ export default class Zigbee { } async getNetworkParameters(): Promise { - return this.herdsman.getNetworkParameters(); + return await this.herdsman.getNetworkParameters(); } async reset(type: 'soft' | 'hard'): Promise { @@ -386,11 +386,11 @@ export default class Zigbee { } async touchlinkFactoryResetFirst(): Promise { - return this.herdsman.touchlinkFactoryResetFirst(); + return await this.herdsman.touchlinkFactoryResetFirst(); } async touchlinkFactoryReset(ieeeAddr: string, channel: number): Promise { - return this.herdsman.touchlinkFactoryReset(ieeeAddr, channel); + return await this.herdsman.touchlinkFactoryReset(ieeeAddr, channel); } async addInstallCode(installCode: string): Promise { @@ -402,7 +402,7 @@ export default class Zigbee { } async touchlinkScan(): Promise<{ieeeAddr: string; channel: number}[]> { - return this.herdsman.touchlinkScan(); + return await this.herdsman.touchlinkScan(); } createGroup(ID: number): Group {