From a459b9a1fd83dff41a2136701931755de7a69ab7 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 9 Mar 2025 15:26:28 +0800 Subject: [PATCH] core: loader: add missing inject --- packages/hydrooj/src/entry/cli.ts | 2 +- packages/hydrooj/src/entry/worker.ts | 10 ++++++---- packages/hydrooj/src/handler/manage.ts | 8 ++++---- packages/ui-default/index.ts | 8 ++++---- packages/ui-next/index.ts | 1 - 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/packages/hydrooj/src/entry/cli.ts b/packages/hydrooj/src/entry/cli.ts index 41e27d029..8e974e543 100644 --- a/packages/hydrooj/src/entry/cli.ts +++ b/packages/hydrooj/src/entry/cli.ts @@ -115,7 +115,7 @@ export async function load(ctx: Context) { await ctx.plugin(ConfigService); await require('../model/system').runConfig(); ctx = await new Promise((resolve) => { - ctx.inject(['loader'], (c) => { + ctx.inject(['loader', 'config'], (c) => { resolve(c); }); }); diff --git a/packages/hydrooj/src/entry/worker.ts b/packages/hydrooj/src/entry/worker.ts index c2845442c..6c148671b 100644 --- a/packages/hydrooj/src/entry/worker.ts +++ b/packages/hydrooj/src/entry/worker.ts @@ -39,14 +39,16 @@ export async function apply(ctx: Context) { const modelSystem = require('../model/system'); await modelSystem.runConfig(); ctx = await new Promise((resolve) => { - ctx.inject(['loader'], (c) => { + ctx.inject(['loader', 'config'], (c) => { resolve(c); }); }); - await ctx.loader.reloadPlugin(require.resolve('../service/storage'), 'file', 'hydrooj/service/storage'); await ctx.plugin(require('../service/hmr').default, { watch: argv.options.watch }); - await require('../service/worker').apply(ctx); - await require('../service/server').apply(ctx); + await Promise.all([ + ctx.loader.reloadPlugin(require.resolve('../service/storage'), 'file', 'hydrooj/service/storage'), + ctx.loader.reloadPlugin(require.resolve('../service/worker'), 'worker', 'hydrooj/service/worker'), + ctx.loader.reloadPlugin(require.resolve('../service/server'), 'server', 'hydrooj/service/server'), + ]); ctx = await new Promise((resolve) => { ctx.inject(['server'], (c) => { resolve(c); diff --git a/packages/hydrooj/src/handler/manage.ts b/packages/hydrooj/src/handler/manage.ts index a5c44b490..8fe56d59f 100644 --- a/packages/hydrooj/src/handler/manage.ts +++ b/packages/hydrooj/src/handler/manage.ts @@ -183,12 +183,12 @@ class SystemConfigHandler extends SystemHandler { @requireSudo async get() { this.response.template = 'manage_config.html'; - let value = this.ctx.get('config').configSource; + let value = this.ctx.config.configSource; try { - value = yaml.dump(Schema.intersect(this.ctx.get('config').settings)(yaml.load(value))); + value = yaml.dump(Schema.intersect(this.ctx.config.settings)(yaml.load(value))); } catch (e) { } this.response.body = { - schema: Schema.intersect(this.ctx.get('config').settings).toJSON(), + schema: Schema.intersect(this.ctx.config.settings).toJSON(), value, }; } @@ -202,7 +202,7 @@ class SystemConfigHandler extends SystemHandler { } catch (e) { throw new ValidationError('value'); } - await this.ctx.get('config').saveConfig(config); + await this.ctx.config.saveConfig(config); } } diff --git a/packages/ui-default/index.ts b/packages/ui-default/index.ts index e1dea3e76..62eb5b77b 100644 --- a/packages/ui-default/index.ts +++ b/packages/ui-default/index.ts @@ -22,7 +22,7 @@ class WikiAboutHandler extends Handler { // TODO template engine raw = raw.replace(/{{ name }}/g, this.domain.ui?.name || SystemModel.get('server.name')).trim(); const lines = raw.split('\n'); - const sections = []; + const sections: { id: string, title: string, content: string }[] = []; for (const line of lines) { if (line.startsWith('# ')) { const id = line.split(' ')[1]; @@ -53,7 +53,7 @@ class LegacyModeHandler extends Handler { @param('legacy', Types.Boolean) @param('nohint', Types.Boolean) - async get(domainId: string, legacy = false, nohint = false) { + async get({ }, legacy = false, nohint = false) { this.session.legacy = legacy; this.session.nohint = nohint; this.back(); @@ -74,7 +74,7 @@ class MarkdownHandler extends Handler { class SystemConfigSchemaHandler extends Handler { async get() { - const schema = convert(Schema.intersect(this.ctx.get('config')!.settings) as any, true); + const schema = convert(Schema.intersect(this.ctx.config.settings) as any, true); this.response.body = schema; } } @@ -116,7 +116,7 @@ class RichMediaHandler extends Handler { } async post({ domainId, items }) { - const res = []; + const res: any[] = []; for (const item of items || []) { if (item.domainId && item.domainId === domainId) delete item.domainId; if (item.type === 'user') res.push(this.renderUser(domainId, item).catch(() => '')); diff --git a/packages/ui-next/index.ts b/packages/ui-next/index.ts index 1e0b64aeb..45011385f 100644 --- a/packages/ui-next/index.ts +++ b/packages/ui-next/index.ts @@ -2,7 +2,6 @@ import path from 'path'; import importMetaUrlPlugin from '@codingame/esbuild-import-meta-url-plugin'; import react from '@vitejs/plugin-react-swc'; import c2k from 'koa2-connect'; -import _ from 'lodash'; import fs from 'fs'; import { createServer } from 'vite'; import { } from '@hydrooj/framework';