From 0d41439d7ae8ba25223ae41c70f4667f514b201f Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Fri, 27 Mar 2026 15:56:48 +0100 Subject: [PATCH] refactor: eliminate explicit `any` from `once()` and `toHandler()` with proper generics --- .../ocpp/2.0/OCPP20IncomingRequestService.ts | 8 ++++---- src/utils/Utils.ts | 13 +++++-------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.ts b/src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.ts index fe1d2e2e..eaaef171 100644 --- a/src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.ts +++ b/src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.ts @@ -3668,11 +3668,11 @@ export class OCPP20IncomingRequestService extends OCPPIncomingRequestService { ) } - private toHandler ( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - handler: (chargingStation: ChargingStation, commandPayload: any) => JsonType | Promise + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- bridges contravariant handler signatures into IncomingRequestHandler + private toHandler

( + handler: (chargingStation: ChargingStation, commandPayload: P) => Promise | R ): IncomingRequestHandler { - return handler as IncomingRequestHandler + return handler as unknown as IncomingRequestHandler } private triggerAllEvseStatusNotifications ( diff --git a/src/utils/Utils.ts b/src/utils/Utils.ts index 1d79ac89..71159ee7 100644 --- a/src/utils/Utils.ts +++ b/src/utils/Utils.ts @@ -30,17 +30,15 @@ export const logPrefix = (prefixString = ''): string => { return `${new Date().toLocaleString()}${prefixString}` } -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const once = any>(fn: T): T => { +export const once = (fn: (...args: A) => R): ((...args: A) => R) => { let hasBeenCalled = false - let result: ReturnType + let result!: R let thrownError: Error | undefined - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return function (this: any, ...args: Parameters): ReturnType { + return (...args: A): R => { if (!hasBeenCalled) { hasBeenCalled = true try { - result = fn.apply(this, args) as ReturnType + result = fn(...args) } catch (err) { thrownError = err as Error } @@ -48,9 +46,8 @@ export const once = any>(fn: T): T => { if (thrownError != null) { throw thrownError } - // eslint-disable-next-line @typescript-eslint/no-unsafe-return return result - } as T + } } export const has = (property: PropertyKey, object: unknown): boolean => { -- 2.43.0