From 2224fd2bf9b47697f755542e367c3ecaa68644c2 Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Mon, 13 Jan 2025 11:17:43 +0100 Subject: [PATCH] continue using close --- .../src/server/registry/oopDownloadBrowserMain.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/playwright-core/src/server/registry/oopDownloadBrowserMain.ts b/packages/playwright-core/src/server/registry/oopDownloadBrowserMain.ts index 326d1ce9d5..285bcb7b83 100644 --- a/packages/playwright-core/src/server/registry/oopDownloadBrowserMain.ts +++ b/packages/playwright-core/src/server/registry/oopDownloadBrowserMain.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import type { WriteStream } from 'fs'; import fs from 'fs'; import path from 'path'; import { httpRequest } from '../../utils/network'; @@ -46,7 +47,7 @@ function browserDirectoryToMarkerFilePath(browserDirectory: string): string { return path.join(browserDirectory, 'INSTALLATION_COMPLETE'); } -function downloadFile(options: DownloadParams, file: Writable): Promise { +function downloadFile(options: DownloadParams, file: WriteStream | Writable): Promise { let downloadedBytes = 0; let totalBytes = 0; @@ -89,7 +90,10 @@ function downloadFile(options: DownloadParams, file: Writable): Promise { response.pipe(file); response.on('data', onData); response.on('error', (error: any) => { - file.destroy(); + if ('close' in file) + file.close(); + else + file.destroy(error); if (error?.code === 'ECONNRESET') { log(`-- download failed, server closed connection`); promise.reject(new Error(`Download failed: server closed connection. URL: ${options.url}`));