diff --git a/frontend/angular.json b/frontend/angular.json index c8dee291f..0216dbf9c 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -77,6 +77,10 @@ { "replace": "src/app/@core/services/service.module.ts", "with": "src/app/@core/services/web.service.module.ts" + }, + { + "replace": "src/app/@core/utils/logger/logger-impl.ts", + "with": "src/app/@core/utils/logger/web.logger-impl.ts" } ], "assets": [ @@ -103,6 +107,10 @@ { "replace": "src/app/@core/services/service.module.ts", "with": "src/app/@core/services/web.service.module.ts" + }, + { + "replace": "src/app/@core/utils/logger/logger-impl.ts", + "with": "src/app/@core/utils/logger/web.logger-impl.ts" } ], "optimization": true, diff --git a/frontend/src/app/@core/utils/logger.ts b/frontend/src/app/@core/utils/logger.ts index 3fe45176b..a704b70a7 100644 --- a/frontend/src/app/@core/utils/logger.ts +++ b/frontend/src/app/@core/utils/logger.ts @@ -1,4 +1,4 @@ -import { environment } from '../../../environments/environment'; +import log from './logger/logger-impl'; export enum LogLevel { TRACE = 'TRACE', @@ -8,60 +8,6 @@ export enum LogLevel { ERROR = 'ERROR', } -const logImplWeb = (level: LogLevel, path: string, ...messages: any[]): void => { - let fn; - switch (level) { - case LogLevel.TRACE: - case LogLevel.DEBUG: - case LogLevel.INFO: - fn = console.log; - break; - - case LogLevel.WARNING: - fn = console.warn; - break; - - case LogLevel.ERROR: - fn = console.error; - break; - } - - fn(`[${level}]`, `[${path}]`, ...messages); -}; - -const logImplTauri = (() => { - const cachedCalls: [string, any][] = []; - let invoke = async (cmd: string, args: any): Promise => { - // defer actual logging until module finished loading - cachedCalls.push([cmd, args]); - }; - import('@tauri-apps/api/tauri').then((tauri) => { - invoke = tauri.invoke; - cachedCalls.forEach(([cmd, args]) => { - invoke(cmd, args); - }); - }); - - return (level: LogLevel, path: string, ...messages: any[]) => { - logImplWeb(level, path, ...messages); - invoke('plugin:cabr2_logger|log', { - level, - path, - messages, - }).catch((err) => { - console.error(err); - }); - }; -})(); - -const log = (() => { - if (environment.web) { - return logImplWeb; - } else { - return logImplTauri; - } -})(); - /** * This class provides methods that call the logging functions in the backend. * It is supposed to be used if you want to log something into the log file, diff --git a/frontend/src/app/@core/utils/logger/logger-impl.ts b/frontend/src/app/@core/utils/logger/logger-impl.ts new file mode 100644 index 000000000..fd962dedc --- /dev/null +++ b/frontend/src/app/@core/utils/logger/logger-impl.ts @@ -0,0 +1,14 @@ +import { invoke } from '@tauri-apps/api/tauri'; +import { LogLevel } from '../logger'; +import logWeb from './web.logger-impl'; + +export default (level: LogLevel, path: string, ...messages: any[]): void => { + logWeb(level, path, ...messages); + invoke('plugin:cabr2_logger|log', { + level, + path, + messages, + }).catch((err) => { + console.error(err); + }); +}; diff --git a/frontend/src/app/@core/utils/logger/web.logger-impl.ts b/frontend/src/app/@core/utils/logger/web.logger-impl.ts new file mode 100644 index 000000000..3726eb365 --- /dev/null +++ b/frontend/src/app/@core/utils/logger/web.logger-impl.ts @@ -0,0 +1,22 @@ +import { LogLevel } from '../logger'; + +export default (level: LogLevel, path: string, ...messages: any[]): void => { + let fn; + switch (level) { + case LogLevel.TRACE: + case LogLevel.DEBUG: + case LogLevel.INFO: + fn = console.log; + break; + + case LogLevel.WARNING: + fn = console.warn; + break; + + case LogLevel.ERROR: + fn = console.error; + break; + } + + fn(`[${level}]`, `[${path}]`, ...messages); +};