core: performance enhancement

pull/394/head
undefined 2 years ago
parent bab15a775b
commit f22caf8c7b

@ -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",

Loading…
Cancel
Save