mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-17 09:36:08 +08:00
core: performance enhancement
This commit is contained in:
1 parent
bab15a775b
commit
f22caf8c7b
6 files changed
+15
-9
No files matched your search
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hydrooj",
|
||||
"version": "3.14.22",
|
||||
"version": "3.14.23",
|
||||
"bin": "bin/hydrooj.js",
|
||||
"main": "src/loader",
|
||||
"module": "src/loader",
|
||||
@@ -45,6 +45,7 @@
|
||||
"p-queue": "^7.2.0",
|
||||
"path-to-regexp": "^6.2.1",
|
||||
"require-resolve-hook": "^1.1.0",
|
||||
"schemastery": "^3.5.0",
|
||||
"semver": "^7.3.7",
|
||||
"serialize-javascript": "^6.0.0",
|
||||
"source-map-support": "^0.5.21",
|
||||
|
||||
@@ -217,8 +217,8 @@ class SystemSettingHandler extends SystemHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
tasks.push(bus.parallel('system/setting', args));
|
||||
await Promise.all(tasks);
|
||||
await bus.broadcast('system/setting', args);
|
||||
this.back();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,7 @@ export const Setting = (
|
||||
|
||||
export const PreferenceSetting = (...settings: _Setting[]) => {
|
||||
for (const setting of settings) {
|
||||
if (PREFERENCE_SETTINGS.find((s) => s.key === setting.key)) throw new Error(`Duplicate setting key: ${setting.key}`);
|
||||
PREFERENCE_SETTINGS.push(setting);
|
||||
SETTINGS.push(setting);
|
||||
SETTINGS_BY_KEY[setting.key] = setting;
|
||||
@@ -77,6 +78,7 @@ export const PreferenceSetting = (...settings: _Setting[]) => {
|
||||
};
|
||||
export const AccountSetting = (...settings: _Setting[]) => {
|
||||
for (const setting of settings) {
|
||||
if (ACCOUNT_SETTINGS.find((s) => s.key === setting.key)) throw new Error(`Duplicate setting key: ${setting.key}`);
|
||||
ACCOUNT_SETTINGS.push(setting);
|
||||
SETTINGS.push(setting);
|
||||
SETTINGS_BY_KEY[setting.key] = setting;
|
||||
@@ -84,18 +86,21 @@ export const AccountSetting = (...settings: _Setting[]) => {
|
||||
};
|
||||
export const DomainUserSetting = (...settings: _Setting[]) => {
|
||||
for (const setting of settings) {
|
||||
if (DOMAIN_USER_SETTINGS.find((s) => s.key === setting.key)) throw new Error(`Duplicate setting key: ${setting.key}`);
|
||||
DOMAIN_USER_SETTINGS.push(setting);
|
||||
DOMAIN_USER_SETTINGS_BY_KEY[setting.key] = setting;
|
||||
}
|
||||
};
|
||||
export const DomainSetting = (...settings: _Setting[]) => {
|
||||
for (const setting of settings) {
|
||||
if (DOMAIN_SETTINGS.find((s) => s.key === setting.key)) throw new Error(`Duplicate setting key: ${setting.key}`);
|
||||
DOMAIN_SETTINGS.push(setting);
|
||||
DOMAIN_SETTINGS_BY_KEY[setting.key] = setting;
|
||||
}
|
||||
};
|
||||
export const SystemSetting = (...settings: _Setting[]) => {
|
||||
for (const setting of settings) {
|
||||
if (SYSTEM_SETTINGS.find((s) => s.key === setting.key)) throw new Error(`Duplicate setting key: ${setting.key}`);
|
||||
SYSTEM_SETTINGS.push(setting);
|
||||
SYSTEM_SETTINGS_BY_KEY[setting.key] = setting;
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ export async function runConfig() {
|
||||
}
|
||||
|
||||
bus.on('system/setting', (args) => {
|
||||
for (const key in args) set(key, args[key], false);
|
||||
for (const key in args) cache[key] = args[key];
|
||||
});
|
||||
|
||||
global.Hydro.model.system = {
|
||||
|
||||
@@ -36,7 +36,7 @@ declare module 'hydrooj/src/service/layers/base' {
|
||||
let constant = '';
|
||||
let hash = '';
|
||||
|
||||
async function run() {
|
||||
async function buildUI() {
|
||||
const pageFiles = Object.keys(global.Hydro.ui.manifest).filter((i) => /\.page\.[jt]sx?$/.test(i));
|
||||
const build = await esbuild.build({
|
||||
format: 'iife',
|
||||
@@ -61,13 +61,13 @@ async function run() {
|
||||
const version = c.digest('hex');
|
||||
constant = JSON.stringify(payload);
|
||||
UiContextBase.constantVersion = hash = version;
|
||||
|
||||
}
|
||||
bus.on('app/started', buildUI);
|
||||
bus.on('system/setting', () => {
|
||||
[UiContextBase.nav_logo_dark, UiContextBase.nav_logo_dark_2x] = system.getMany([
|
||||
'ui-default.nav_logo_dark', 'ui-default.nav_logo_dark_2x',
|
||||
]);
|
||||
}
|
||||
bus.on('app/started', run);
|
||||
bus.on('system/setting', run);
|
||||
});
|
||||
|
||||
class WikiHelpHandler extends Handler {
|
||||
noCheckPermView = true;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@hydrooj/ui-default",
|
||||
"version": "4.38.27",
|
||||
"version": "4.38.28",
|
||||
"author": "undefined <i@undefined.moe>",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "hydro.js",
|
||||
|
||||
Reference in new issue
Block a user