Skip to content

Commit 4955558

Browse files
committed
chore: use enums
1 parent 4b26908 commit 4955558

File tree

2 files changed

+28
-29
lines changed

2 files changed

+28
-29
lines changed

src/types/shared.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,15 @@ export interface IpcEventData {
2727
uuid?: UUID; // UUID to match requests and responses (for `invoke` and `sendSync` methods on `ipcRenderer`)
2828
}
2929

30-
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'none';
30+
export type LogLevelString = 'debug' | 'info' | 'warn' | 'error' | 'none';
31+
32+
export enum LogLevel {
33+
debug,
34+
info,
35+
warn,
36+
error,
37+
none,
38+
}
3139

3240
export interface InstallOptions {
3341
/**
@@ -43,7 +51,7 @@ export interface InstallOptions {
4351
*
4452
* @default 'debug'
4553
*/
46-
logLevel?: LogLevel;
54+
logLevel?: LogLevelString;
4755
}
4856

4957
/* ------------------------------------------------------ */

src/utils/Logger.ts

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,51 @@
1-
import type { LogLevel } from '../types/shared';
1+
import type { LogLevelString } from '../types/shared';
2+
import { LogLevel } from '../types/shared';
23

34
class Logger {
4-
private readonly logLevelMap: Record<LogLevel, number> = {
5-
debug: 1,
6-
info: 2,
7-
warn: 3,
8-
error: 4,
9-
none: 5,
10-
};
5+
private currentLogLevel = LogLevel.debug;
116

12-
private currentLogLevel: LogLevel = 'debug';
13-
private currentLogLevelIndex: number = this.logLevelMap[this.currentLogLevel];
14-
15-
setLogLevel(level: LogLevel) {
16-
if (this.currentLogLevel === level) return; // no change
17-
18-
if (this.logLevelMap[level] === undefined) {
7+
setLogLevel(level: LogLevelString) {
8+
if (LogLevel[level] === undefined) {
199
console.error(`Invalid log level: ${level}`);
2010
return;
2111
}
2212

23-
this.currentLogLevel = level;
24-
this.currentLogLevelIndex = this.logLevelMap[level];
13+
if (LogLevel[level] === this.currentLogLevel) return; // no change
14+
15+
this.currentLogLevel = LogLevel[level];
2516
}
2617

2718
private log(level: LogLevel, ...args: any[]) {
28-
if (this.currentLogLevel === 'none') return;
29-
if (this.logLevelMap[level] < this.currentLogLevelIndex) return;
19+
if (this.currentLogLevel === LogLevel.none) return;
20+
if (level < this.currentLogLevel) return;
3021

3122
switch (level) {
32-
case 'debug':
23+
case LogLevel.debug:
3324
console.debug(...args);
3425
break;
35-
case 'info':
26+
case LogLevel.info:
3627
console.log(...args);
3728
break;
38-
case 'warn':
29+
case LogLevel.warn:
3930
console.warn(...args);
4031
break;
41-
case 'error':
32+
case LogLevel.error:
4233
console.error(...args);
4334
break;
4435
}
4536
}
4637

4738
debug(...args: any[]) {
48-
this.log('debug', ...args);
39+
this.log(LogLevel.debug, ...args);
4940
}
5041
info(...args: any[]) {
51-
this.log('info', ...args);
42+
this.log(LogLevel.info, ...args);
5243
}
5344
warn(...args: any[]) {
54-
this.log('warn', ...args);
45+
this.log(LogLevel.warn, ...args);
5546
}
5647
error(...args: any[]) {
57-
this.log('error', ...args);
48+
this.log(LogLevel.error, ...args);
5849
}
5950
}
6051

0 commit comments

Comments
 (0)