aboutsummaryrefslogtreecommitdiff
path: root/editors/code/src/installation
diff options
context:
space:
mode:
Diffstat (limited to 'editors/code/src/installation')
-rw-r--r--editors/code/src/installation/download_file.ts7
1 files changed, 3 insertions, 4 deletions
diff --git a/editors/code/src/installation/download_file.ts b/editors/code/src/installation/download_file.ts
index 591de0d31..d154f4816 100644
--- a/editors/code/src/installation/download_file.ts
+++ b/editors/code/src/installation/download_file.ts
@@ -3,7 +3,6 @@ import * as fs from "fs";
3import * as stream from "stream"; 3import * as stream from "stream";
4import * as util from "util"; 4import * as util from "util";
5import { strict as assert } from "assert"; 5import { strict as assert } from "assert";
6import { NestedError } from "ts-nested-error";
7 6
8const pipeline = util.promisify(stream.pipeline); 7const pipeline = util.promisify(stream.pipeline);
9 8
@@ -19,13 +18,13 @@ export async function downloadFile(
19 destFilePermissions: number, 18 destFilePermissions: number,
20 onProgress: (readBytes: number, totalBytes: number) => void 19 onProgress: (readBytes: number, totalBytes: number) => void
21): Promise<void> { 20): Promise<void> {
22 const res = await fetch(url).catch(NestedError.rethrow("Failed at initial fetch")); 21 const res = await fetch(url);
23 22
24 if (!res.ok) { 23 if (!res.ok) {
25 console.log("Error", res.status, "while downloading file from", url); 24 console.log("Error", res.status, "while downloading file from", url);
26 console.dir({ body: await res.text(), headers: res.headers }, { depth: 3 }); 25 console.dir({ body: await res.text(), headers: res.headers }, { depth: 3 });
27 26
28 throw new NestedError(`Got response ${res.status}`); 27 throw new Error(`Got response ${res.status} when trying to download a file.`);
29 } 28 }
30 29
31 const totalBytes = Number(res.headers.get('content-length')); 30 const totalBytes = Number(res.headers.get('content-length'));
@@ -41,7 +40,7 @@ export async function downloadFile(
41 40
42 const destFileStream = fs.createWriteStream(destFilePath, { mode: destFilePermissions }); 41 const destFileStream = fs.createWriteStream(destFilePath, { mode: destFilePermissions });
43 42
44 await pipeline(res.body, destFileStream).catch(NestedError.rethrow("Piping file error")); 43 await pipeline(res.body, destFileStream);
45 return new Promise<void>(resolve => { 44 return new Promise<void>(resolve => {
46 destFileStream.on("close", resolve); 45 destFileStream.on("close", resolve);
47 destFileStream.destroy(); 46 destFileStream.destroy();