[Init] First production version

This commit is contained in:
Minoricew
2024-11-28 01:47:04 +08:00
parent fd0eb0c0c4
commit d976184e42
27 changed files with 2707 additions and 0 deletions

47
src/core/hook.js Normal file
View File

@@ -0,0 +1,47 @@
if (!global.__HUGO_AURA__) {
global.__HUGO_AURA__ = {
hookedWindows: new Map(),
hooks: null,
configInit: false,
};
}
const HooksManager = require("../aura/init/hook/hooksManager");
const configManager = require("../aura/init/shared/configManager");
module.exports = function ({ central, windowName, config }) {
process.stdout.isTTY = true;
process.stderr.isTTY = true;
const electron = central(0);
const app = electron.app;
console.log("[HugoAura / Loaded] Aura is loaded!");
const hooksManager = new HooksManager();
configManager.ensureConfigExists();
const loadedConfig = configManager.loadConfig();
if (!global.__HUGO_AURA__.configInit) global.__HUGO_AURA__.configInit = true;
const hooks = hooksManager.loadHooks();
if (loadedConfig.devTools && !config.canOpenDevTool) {
config.canOpenDevTool = true;
}
const webContentsCreatedListener = (_event, webContents) => {
const hookConfig = hooks.get(windowName);
if (hookConfig) {
hooksManager.handleWindowHook(webContents, hookConfig, windowName);
} else {
console.debug(
`[HugoAura / Init] Window ${windowName} has no corresponding hook, ignoring...`
);
}
};
app.once("web-contents-created", webContentsCreatedListener);
return () => {
app.removeListener("web-contents-created", webContentsCreatedListener);
};
};