mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +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",
|
"name": "hydrooj",
|
||||||
"version": "3.14.22",
|
"version": "3.14.23",
|
||||||
"bin": "bin/hydrooj.js",
|
"bin": "bin/hydrooj.js",
|
||||||
"main": "src/loader",
|
"main": "src/loader",
|
||||||
"module": "src/loader",
|
"module": "src/loader",
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
"p-queue": "^7.2.0",
|
"p-queue": "^7.2.0",
|
||||||
"path-to-regexp": "^6.2.1",
|
"path-to-regexp": "^6.2.1",
|
||||||
"require-resolve-hook": "^1.1.0",
|
"require-resolve-hook": "^1.1.0",
|
||||||
|
"schemastery": "^3.5.0",
|
||||||
"semver": "^7.3.7",
|
"semver": "^7.3.7",
|
||||||
"serialize-javascript": "^6.0.0",
|
"serialize-javascript": "^6.0.0",
|
||||||
"source-map-support": "^0.5.21",
|
"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 Promise.all(tasks);
|
||||||
|
await bus.broadcast('system/setting', args);
|
||||||
this.back();
|
this.back();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ export const Setting = (
|
|||||||
|
|
||||||
export const PreferenceSetting = (...settings: _Setting[]) => {
|
export const PreferenceSetting = (...settings: _Setting[]) => {
|
||||||
for (const setting of settings) {
|
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);
|
PREFERENCE_SETTINGS.push(setting);
|
||||||
SETTINGS.push(setting);
|
SETTINGS.push(setting);
|
||||||
SETTINGS_BY_KEY[setting.key] = setting;
|
SETTINGS_BY_KEY[setting.key] = setting;
|
||||||
@@ -77,6 +78,7 @@ export const PreferenceSetting = (...settings: _Setting[]) => {
|
|||||||
};
|
};
|
||||||
export const AccountSetting = (...settings: _Setting[]) => {
|
export const AccountSetting = (...settings: _Setting[]) => {
|
||||||
for (const setting of settings) {
|
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);
|
ACCOUNT_SETTINGS.push(setting);
|
||||||
SETTINGS.push(setting);
|
SETTINGS.push(setting);
|
||||||
SETTINGS_BY_KEY[setting.key] = setting;
|
SETTINGS_BY_KEY[setting.key] = setting;
|
||||||
@@ -84,18 +86,21 @@ export const AccountSetting = (...settings: _Setting[]) => {
|
|||||||
};
|
};
|
||||||
export const DomainUserSetting = (...settings: _Setting[]) => {
|
export const DomainUserSetting = (...settings: _Setting[]) => {
|
||||||
for (const setting of settings) {
|
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.push(setting);
|
||||||
DOMAIN_USER_SETTINGS_BY_KEY[setting.key] = setting;
|
DOMAIN_USER_SETTINGS_BY_KEY[setting.key] = setting;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
export const DomainSetting = (...settings: _Setting[]) => {
|
export const DomainSetting = (...settings: _Setting[]) => {
|
||||||
for (const setting of settings) {
|
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.push(setting);
|
||||||
DOMAIN_SETTINGS_BY_KEY[setting.key] = setting;
|
DOMAIN_SETTINGS_BY_KEY[setting.key] = setting;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
export const SystemSetting = (...settings: _Setting[]) => {
|
export const SystemSetting = (...settings: _Setting[]) => {
|
||||||
for (const setting of settings) {
|
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.push(setting);
|
||||||
SYSTEM_SETTINGS_BY_KEY[setting.key] = setting;
|
SYSTEM_SETTINGS_BY_KEY[setting.key] = setting;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ export async function runConfig() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bus.on('system/setting', (args) => {
|
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 = {
|
global.Hydro.model.system = {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ declare module 'hydrooj/src/service/layers/base' {
|
|||||||
let constant = '';
|
let constant = '';
|
||||||
let hash = '';
|
let hash = '';
|
||||||
|
|
||||||
async function run() {
|
async function buildUI() {
|
||||||
const pageFiles = Object.keys(global.Hydro.ui.manifest).filter((i) => /\.page\.[jt]sx?$/.test(i));
|
const pageFiles = Object.keys(global.Hydro.ui.manifest).filter((i) => /\.page\.[jt]sx?$/.test(i));
|
||||||
const build = await esbuild.build({
|
const build = await esbuild.build({
|
||||||
format: 'iife',
|
format: 'iife',
|
||||||
@@ -61,13 +61,13 @@ async function run() {
|
|||||||
const version = c.digest('hex');
|
const version = c.digest('hex');
|
||||||
constant = JSON.stringify(payload);
|
constant = JSON.stringify(payload);
|
||||||
UiContextBase.constantVersion = hash = version;
|
UiContextBase.constantVersion = hash = version;
|
||||||
|
}
|
||||||
|
bus.on('app/started', buildUI);
|
||||||
|
bus.on('system/setting', () => {
|
||||||
[UiContextBase.nav_logo_dark, UiContextBase.nav_logo_dark_2x] = system.getMany([
|
[UiContextBase.nav_logo_dark, UiContextBase.nav_logo_dark_2x] = system.getMany([
|
||||||
'ui-default.nav_logo_dark', 'ui-default.nav_logo_dark_2x',
|
'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 {
|
class WikiHelpHandler extends Handler {
|
||||||
noCheckPermView = true;
|
noCheckPermView = true;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/ui-default",
|
"name": "@hydrooj/ui-default",
|
||||||
"version": "4.38.27",
|
"version": "4.38.28",
|
||||||
"author": "undefined <i@undefined.moe>",
|
"author": "undefined <i@undefined.moe>",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"main": "hydro.js",
|
"main": "hydro.js",
|
||||||
|
|||||||
Reference in new issue
Block a user