1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Rename isLoggerError argument from unknown to arg, remove keyof Logger, use Parameters<ProxyHandler<Logger>[get]>[1] instead, and a comment explaining why @ts-expect-error is needed.

Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
This commit is contained in:
Hung-Han (Henry) Chen 2021-07-14 09:32:30 +03:00
parent ffc69a6fdf
commit 146891e431
No known key found for this signature in database
GPG Key ID: 54B44603D251B788

View File

@ -50,14 +50,14 @@ const logger = winston.createLogger({
});
type Logger = ReturnType<typeof winston.createLogger>;
type LoggerKeys = keyof Logger;
type LoggerError = Logger["error"];
type LoggerGetProxyHandlerKeyType = Parameters<ProxyHandler<Logger>["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)) {