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:
parent
ffc69a6fdf
commit
146891e431
@ -50,14 +50,14 @@ const logger = winston.createLogger({
|
|||||||
});
|
});
|
||||||
|
|
||||||
type Logger = ReturnType<typeof winston.createLogger>;
|
type Logger = ReturnType<typeof winston.createLogger>;
|
||||||
type LoggerKeys = keyof Logger;
|
|
||||||
type LoggerError = Logger["error"];
|
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 =>
|
const isLoggerError = (arg: unknown, key: LoggerGetProxyHandlerKeyType): arg is LoggerError =>
|
||||||
typeof unknown === "function" && key === "error";
|
typeof arg === "function" && key === "error";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Proxied version of logger
|
* 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)
|
* Captures error message using Sentry.captureMessage(...params) when logger.error(...params)
|
||||||
*/
|
*/
|
||||||
const proxiedLogger: Logger = new Proxy(logger, {
|
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];
|
const property = target[key];
|
||||||
|
|
||||||
if (isLoggerError(property, key)) {
|
if (isLoggerError(property, key)) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user