From d5f5126b95850f2dd6b324f657c7922753443f53 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 9 Nov 2025 01:06:24 +0800 Subject: [PATCH] framework: fix sse args parse --- framework/framework/server.ts | 13 +++++++++---- packages/hydrooj/src/service/watch.ts | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/framework/framework/server.ts b/framework/framework/server.ts index dc12c8a8e..111b6657b 100644 --- a/framework/framework/server.ts +++ b/framework/framework/server.ts @@ -274,7 +274,7 @@ export class ConnectionHandler extends HandlerCommon { } send(data: any) { - let payload = JSON.stringify(data, serializer(false, this)); + let payload = typeof data === 'string' ? data : JSON.stringify(data, serializer(false, this)); if (this.compression) { if (this.counter > 1000) this.resetCompression(); payload = this.compression.deflate(payload); @@ -739,14 +739,19 @@ ${c.response.status} ${endTime - startTime}ms ${c.response.length}`); const savedContext = Object.hasOwn(this.ctx, Symbol.for('cordis.shadow')) ? Object.getPrototypeOf(this.ctx) : this.ctx; + const checker = Checker(permPrivChecker); if (type === 'route') { - router.all(routeName, path, (ctx) => this.handleHttp(ctx as any, HandlerClass, Checker(permPrivChecker), savedContext)); + router.all(routeName, path, (ctx) => this.handleHttp(ctx as any, HandlerClass, checker, savedContext)); } else { - const checker = Checker(permPrivChecker); const layer = router.ws(path, async (conn, _req, ctx) => { await this.handleWS(ctx as any, HandlerClass, checker, conn, layer, savedContext); }); - if (this.config.enableSSE) router.get(path, (ctx) => this.handleWS(ctx as any, HandlerClass, checker, null, null, savedContext)); + if (this.config.enableSSE) { + router.get(routeName, path, async (ctx) => { + Object.assign(ctx.HydroContext.args, ctx.params); + await this.handleWS(ctx as any, HandlerClass, checker, null, null, savedContext); + }); + } } const dispose = router.disposeLastOp; // @ts-ignore diff --git a/packages/hydrooj/src/service/watch.ts b/packages/hydrooj/src/service/watch.ts index b021e4f7d..c95df2d62 100644 --- a/packages/hydrooj/src/service/watch.ts +++ b/packages/hydrooj/src/service/watch.ts @@ -10,7 +10,7 @@ export const apply = (ctx: Context) => { const roots = [root]; if (process.env.WATCH_ROOT) roots.push(process.env.WATCH_ROOT); const watcher = watch(roots, { - ignored: (file) => [ + ignored: (file) => file.endsWith('.log') || [ 'node_modules', '.git', 'logs', '.cache', '.yarn', 'tsconfig.tsbuildinfo', ].some((rule) => file.startsWith(`${rule}/`) || file.endsWith(`/${rule}`) || file.includes(`/${rule}/`)), });