From 146891e4315bf5315745753f37101a769009bbbd Mon Sep 17 00:00:00 2001 From: "Hung-Han (Henry) Chen" Date: Wed, 14 Jul 2021 09:32:30 +0300 Subject: [PATCH] Rename isLoggerError argument from unknown to arg, remove keyof Logger, use Parameters[get]>[1] instead, and a comment explaining why @ts-expect-error is needed. Signed-off-by: Hung-Han (Henry) Chen --- src/main/logger.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/logger.ts b/src/main/logger.ts index 7fc392a62c..05ce7e678d 100644 --- a/src/main/logger.ts +++ b/src/main/logger.ts @@ -50,14 +50,14 @@ const logger = winston.createLogger({ }); type Logger = ReturnType; -type LoggerKeys = keyof Logger; type LoggerError = Logger["error"]; +type LoggerGetProxyHandlerKeyType = Parameters["get"]>[1]; /** - * Type guard to ensure unknown is logger.error function + * Type guard to ensure arg is logger.error function */ -const isLoggerError = (unknown: unknown, key: LoggerKeys): unknown is LoggerError => - typeof unknown === "function" && key === "error"; +const isLoggerError = (arg: unknown, key: LoggerGetProxyHandlerKeyType): arg is LoggerError => + typeof arg === "function" && key === "error"; /** * Proxied version of logger @@ -65,7 +65,9 @@ const isLoggerError = (unknown: unknown, key: LoggerKeys): unknown is LoggerErro * Captures error message using Sentry.captureMessage(...params) when logger.error(...params) */ const proxiedLogger: Logger = new Proxy(logger, { - get(target: Logger, key: LoggerKeys) { + get(target, key) { + // @ts-expect-error both string and symbol can be used as an index type https://github.com/microsoft/TypeScript/issues/1863 + // this can be removed after upgrade to a ts version with this fix https://github.com/microsoft/TypeScript/pull/44512 in const property = target[key]; if (isLoggerError(property, key)) {