2025-06-02 00:22:46 +08:00
|
|
|
const __AURA_VERSION__ = "0.1.1-pre-I";
|
2025-04-18 19:20:46 +08:00
|
|
|
|
2024-11-28 01:47:04 +08:00
|
|
|
(() => {
|
|
|
|
|
if (!global.__HUGO_AURA__) {
|
|
|
|
|
global.__HUGO_AURA__ = {
|
2025-04-18 19:20:46 +08:00
|
|
|
configInit: true, // preload 始终比 hook 晚, 默认 config 已初始化
|
|
|
|
|
version: __AURA_VERSION__,
|
2024-11-28 01:47:04 +08:00
|
|
|
};
|
|
|
|
|
}
|
2025-04-18 19:20:46 +08:00
|
|
|
|
|
|
|
|
if (!global.__HUGO_AURA_UI_FUNCTIONS__) {
|
|
|
|
|
global.__HUGO_AURA_UI_FUNCTIONS__ = {};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!global.__HUGO_AURA_UI_REACTIVES__) {
|
|
|
|
|
global.__HUGO_AURA_UI_REACTIVES__ = {};
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-28 01:47:04 +08:00
|
|
|
const configManager = require("../aura/init/shared/configManager");
|
|
|
|
|
const WebpackHook = require("../aura/init/preload/webpackHook");
|
|
|
|
|
|
|
|
|
|
console.log(`[HugoAura / AppHook / Preload] Preparing...`);
|
|
|
|
|
|
|
|
|
|
const createConfigProxy = (baseObj, path = []) => {
|
|
|
|
|
return new Proxy(baseObj, {
|
|
|
|
|
get(target, prop) {
|
|
|
|
|
if (typeof target[prop] === "object" && target[prop] !== null) {
|
|
|
|
|
return createConfigProxy(target[prop], [...path, prop]);
|
|
|
|
|
}
|
|
|
|
|
return target[prop];
|
|
|
|
|
},
|
|
|
|
|
set(target, prop, value) {
|
|
|
|
|
target[prop] = value;
|
2025-04-18 19:20:46 +08:00
|
|
|
const configUpdateEvent = new CustomEvent("onHugoAuraConfigUpdate", {
|
|
|
|
|
detail: {
|
|
|
|
|
path: [...path, prop],
|
|
|
|
|
value,
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
document.dispatchEvent(configUpdateEvent);
|
2024-11-28 01:47:04 +08:00
|
|
|
console.log(
|
|
|
|
|
`[HugoAura / Config] Config changed at path: ${[...path, prop].join(
|
|
|
|
|
"."
|
2025-04-18 19:20:46 +08:00
|
|
|
)}, new value: ${value}`
|
2024-11-28 01:47:04 +08:00
|
|
|
);
|
|
|
|
|
configManager.writeConfig(window.__HUGO_AURA_CONFIG__);
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const initialConfig = configManager.readConfig();
|
|
|
|
|
window.__HUGO_AURA_CONFIG__ = createConfigProxy(initialConfig);
|
|
|
|
|
|
|
|
|
|
window.__HUGO_AURA_HOOK__ = {};
|
|
|
|
|
const webpackHook = new WebpackHook();
|
|
|
|
|
webpackHook.installHook(window, initialConfig);
|
|
|
|
|
|
|
|
|
|
console.log(`[HugoAura / AppHook / DONE] Hooks installed`);
|
|
|
|
|
})();
|