1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-19 09:43:23 +00:00

Support for logging from NAPI (#14335)

* Support for log to electron console from NAPI

* Fix test mock
This commit is contained in:
Daniel García
2025-04-21 12:21:00 +02:00
committed by GitHub
parent 8de42caf04
commit 86b0a6aa35
6 changed files with 102 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ import log from "electron-log/main";
import { LogLevelType } from "@bitwarden/common/platform/enums/log-level-type.enum";
import { ConsoleLogService as BaseLogService } from "@bitwarden/common/platform/services/console-log.service";
import { logging } from "@bitwarden/desktop-napi";
import { isDev } from "../../utils";
@@ -30,6 +31,29 @@ export class ElectronLogMainService extends BaseLogService {
ipcMain.handle("ipc.log", (_event, { level, message, optionalParams }) => {
this.write(level, message, ...optionalParams);
});
logging.initNapiLog((error, level, message) => this.writeNapiLog(level, message));
}
private writeNapiLog(level: logging.LogLevel, message: string) {
let levelType: LogLevelType;
switch (level) {
case logging.LogLevel.Debug:
levelType = LogLevelType.Debug;
break;
case logging.LogLevel.Warn:
levelType = LogLevelType.Warning;
break;
case logging.LogLevel.Error:
levelType = LogLevelType.Error;
break;
default:
levelType = LogLevelType.Info;
break;
}
this.write(levelType, "[NAPI] " + message);
}
write(level: LogLevelType, message?: any, ...optionalParams: any[]) {

View File

@@ -5,6 +5,14 @@ jest.mock("electron", () => ({
ipcMain: { handle: jest.fn(), on: jest.fn() },
}));
jest.mock("@bitwarden/desktop-napi", () => {
return {
logging: {
initNapiLog: jest.fn(),
},
};
});
describe("ElectronLogMainService", () => {
it("sets dev based on electron method", () => {
process.env.ELECTRON_IS_DEV = "1";