From 5b5dd148ee0600526a1786ef211175a3c5888442 Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 23 Jan 2025 04:23:33 +0800 Subject: [PATCH] utils: fix pipeRequest callback --- packages/hydrojudge/package.json | 2 +- packages/utils/lib/utils.ts | 5 ++++- packages/utils/package.json | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 2f11986a3..485f414a0 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "3.4.0", + "version": "3.4.1", "main": "./src/index.ts", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/utils/lib/utils.ts b/packages/utils/lib/utils.ts index 01ff2759f..04b016a7a 100644 --- a/packages/utils/lib/utils.ts +++ b/packages/utils/lib/utils.ts @@ -327,6 +327,9 @@ export async function extractZip(zip: AdmZip, dest: string, overwrite = false, s export async function pipeRequest(req: superagent.Request, w: fs.WriteStream, timeout?: number, name?: string) { try { await new Promise((resolve, reject) => { + w.on('finish', () => { + resolve(null); + }); req.buffer(false).timeout({ response: Math.min(10000, timeout), deadline: timeout, @@ -336,10 +339,10 @@ export async function pipeRequest(req: superagent.Request, w: fs.WriteStream, ti resp.pipe(w); resp.on('end', () => { cb(null, undefined); - resolve(null); }); resp.on('error', (err) => { cb(err, undefined); + reject(err); }); } }).catch(reject); diff --git a/packages/utils/package.json b/packages/utils/package.json index d19941c75..b0ca98498 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/utils", - "version": "1.4.32", + "version": "1.4.33", "description": "hydrooj utils", "main": "lib/utils.ts", "repository": "https://github.com/hydro-dev/Hydro.git",