Files
Seewo-HugoAura/src/aura/init/main/ipcModules/configIpcHandler.js

80 lines
2.0 KiB
JavaScript
Raw Normal View History

// @ts-check
const __SCOPE = "main";
/**
*
* @param {import("../../../types/main/electron").AuraIPCMain} ipcMain
*/
const applyConfigIpcHandler = (ipcMain) => {
const methodBase = "$aura.config";
const mainEventBus = global.__HUGO_AURA_EVENT_BUS__;
const ConfigManager = require("../../shared/configManager");
const configManager = global.__HUGO_AURA_CONFIG_MGR__
? global.__HUGO_AURA_CONFIG_MGR__
: new ConfigManager();
ipcMain.on(`${methodBase}.refreshMainConfig`, (_event) => {
mainEventBus.emit("$aura.config.refreshConfig");
});
ipcMain.handle(
`${methodBase}.setConfigEncSettings`,
(
/** @type {import("electron").IpcMainInvokeEvent} */ _event,
/** @type {{ target: boolean }} */ arg
) => {
mainEventBus.emit("$aura.config.updateConfigEncSettings", arg.target);
return {
success: true,
};
}
);
ipcMain.on(`${methodBase}.getConfigFromMainSync`, (event, _arg) => {
if (
global.__HUGO_AURA_CONFIG__ &&
Object.keys(global.__HUGO_AURA_CONFIG__).length !== 0
) {
event.returnValue = {
success: true,
data: global.__HUGO_AURA_CONFIG__,
};
} else {
console.warn(
"[HugoAura / Main / IPC / Config / WARN] Global config var not found!"
);
event.returnValue = {
success: false,
data: {},
};
}
});
ipcMain.handle(
`${methodBase}.dispatchConfigFromRenderer`,
(_event, /** @type {{data: string, writeConfig?: boolean}} */ arg) => {
const parsedData = JSON.parse(arg.data);
global.__HUGO_AURA_CONFIG__ = parsedData;
if (arg.writeConfig) {
const result = configManager.writeConfig(parsedData);
if (!result) {
return {
success: false,
};
}
}
return {
success: true,
};
}
);
};
module.exports = { applyConfigIpcHandler };