From f93108f16070049c86039b011ad6febb149653bd Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 3 Oct 2022 14:16:54 +0800 Subject: [PATCH] core: skip server load in cli mode --- packages/hydrooj/src/entry/cli.ts | 2 +- packages/hydrooj/src/service/bus.ts | 2 +- packages/hydrooj/src/service/server.ts | 1 + packages/ui-default/{handler.ts => index.ts} | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) rename packages/ui-default/{handler.ts => index.ts} (99%) diff --git a/packages/hydrooj/src/entry/cli.ts b/packages/hydrooj/src/entry/cli.ts index 1575d954e..4fa2f891b 100644 --- a/packages/hydrooj/src/entry/cli.ts +++ b/packages/hydrooj/src/entry/cli.ts @@ -101,7 +101,7 @@ export async function load(ctx: Context) { model(pending, fail, ctx), setting(pending, fail, require('../model/setting')), ]); - await require('../service/server').apply(ctx); + ctx.plugin(require('../service/server')); await addon(pending, fail, ctx); const scriptDir = path.resolve(__dirname, '..', 'script'); for (const h of await fs.readdir(scriptDir)) { diff --git a/packages/hydrooj/src/service/bus.ts b/packages/hydrooj/src/service/bus.ts index f6663fe80..85f894746 100644 --- a/packages/hydrooj/src/service/bus.ts +++ b/packages/hydrooj/src/service/bus.ts @@ -18,7 +18,7 @@ export type Disposable = () => void; export type VoidReturn = Promise | any; /* eslint-disable @typescript-eslint/naming-convention */ -export interface EventMap extends Record { +export interface EventMap { 'app/started': () => void 'app/load/lib': () => VoidReturn 'app/load/locale': () => VoidReturn diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index 84967296b..0d3753607 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -409,6 +409,7 @@ export async function apply(pluginContext) { Context.service('server', RouteService); pluginContext.server = new RouteService(pluginContext); app.keys = system.get('session.keys') as unknown as string[]; + if (process.env.HYDRO_CLI) return; const proxyMiddleware = proxy('/fs', { target: builtinConfig.file.endPoint, changeOrigin: true, diff --git a/packages/ui-default/handler.ts b/packages/ui-default/index.ts similarity index 99% rename from packages/ui-default/handler.ts rename to packages/ui-default/index.ts index 600b004cc..81aa0b997 100644 --- a/packages/ui-default/handler.ts +++ b/packages/ui-default/index.ts @@ -219,6 +219,7 @@ class RichMediaHandler extends Handler { } export function apply(ctx) { + if (process.env.HYDRO_CLI) return; ctx.Route('wiki_help', '/wiki/help', WikiHelpHandler); ctx.Route('wiki_about', '/wiki/about', WikiAboutHandler); ctx.Route('set_theme', '/set_theme/:theme', SetThemeHandler);