From 8d1c1c99bf7465e42592c7a1820c11c76822de7d Mon Sep 17 00:00:00 2001 From: Hiroshiba Date: Fri, 17 Jan 2025 03:08:55 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20createLogger=E3=82=92=E5=B0=91?= =?UTF-8?q?=E3=81=97=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF=E3=82=BF=E3=83=AA?= =?UTF-8?q?=E3=83=B3=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/domain/frontend/log.ts | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/domain/frontend/log.ts b/src/domain/frontend/log.ts index 4cb2aa8598..fc4beb1d6a 100644 --- a/src/domain/frontend/log.ts +++ b/src/domain/frontend/log.ts @@ -1,22 +1,28 @@ /** ログ出力用の関数を生成する。ブラウザ専用。 */ // TODO: window.backendをDIできるようにする export function createLogger(scope: string) { - const createInner = - ( - method: "logInfo" | "logWarn" | "logError", - fallbackMethod: "info" | "warn" | "error", - ) => - (...args: unknown[]) => { - if (window.backend == undefined) { - // eslint-disable-next-line no-console - console[fallbackMethod](...args); + return { + info: createLogFunction("info"), + warn: createLogFunction("warn"), + error: createLogFunction("error"), + }; + + function createLogFunction(logType: "info" | "warn" | "error") { + return (...args: unknown[]) => { + if (window.backend != undefined) { + const method = ( + { + info: "logInfo", + warn: "logWarn", + error: "logError", + } as const + )[logType]; + window.backend[method](`[${scope}]`, ...args); return; } - window.backend[method](`[${scope}]`, ...args); + + // eslint-disable-next-line no-console + console[logType](...args); }; - return { - info: createInner("logInfo", "info"), - warn: createInner("logWarn", "warn"), - error: createInner("logError", "error"), - }; + } } From 35f4cbf0bc4c23d65585643024c9a08fd359f172 Mon Sep 17 00:00:00 2001 From: Hiroshiba Date: Fri, 17 Jan 2025 23:26:47 +0900 Subject: [PATCH 2/2] =?UTF-8?q?LogLevel=E3=81=A8LogFunction=E3=82=92?= =?UTF-8?q?=E5=AE=9A=E7=BE=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/domain/frontend/log.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/domain/frontend/log.ts b/src/domain/frontend/log.ts index fc4beb1d6a..d99ba23a23 100644 --- a/src/domain/frontend/log.ts +++ b/src/domain/frontend/log.ts @@ -1,13 +1,16 @@ +type LogLevel = "info" | "warn" | "error"; +type LogFunction = (...args: unknown[]) => void; + /** ログ出力用の関数を生成する。ブラウザ専用。 */ // TODO: window.backendをDIできるようにする -export function createLogger(scope: string) { +export function createLogger(scope: string): Record { return { info: createLogFunction("info"), warn: createLogFunction("warn"), error: createLogFunction("error"), }; - function createLogFunction(logType: "info" | "warn" | "error") { + function createLogFunction(logType: LogLevel): LogFunction { return (...args: unknown[]) => { if (window.backend != undefined) { const method = (