Skip to content

Commit

Permalink
chore: remove unused download-to-file util
Browse files Browse the repository at this point in the history
  • Loading branch information
erickzhao committed Dec 3, 2024
1 parent e142715 commit ce32b7d
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 59 deletions.
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@
"node-fetch": "^2.6.7",
"parse-author": "^2.0.0",
"pretty-ms": "^7.0.0",
"progress": "^2.0.3",
"rechoir": "^0.8.0",
"resolve-package": "^1.0.1",
"semver": "^7.2.1",
Expand Down
1 change: 0 additions & 1 deletion packages/api/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@
"lodash": "^4.17.20",
"log-symbols": "^4.0.0",
"node-fetch": "^2.6.7",
"progress": "^2.0.3",
"rechoir": "^0.8.0",
"resolve-package": "^1.0.1",
"semver": "^7.2.1",
Expand Down
57 changes: 0 additions & 57 deletions packages/api/core/src/util/download-to-file.ts
Original file line number Diff line number Diff line change
@@ -1,57 +0,0 @@
import * as path from 'path';

import * as fs from 'fs-extra';
import got, { HTTPError } from 'got';
import ProgressBar from 'progress';

const PROGRESS_BAR_DELAY_IN_SECONDS = 30;

export async function downloadToFile(targetFilePath: string, url: string): Promise<void> {
let downloadCompleted = false;
let bar: ProgressBar | undefined;
let progressPercent: number;
await fs.mkdirp(path.dirname(targetFilePath));
const writeStream = fs.createWriteStream(targetFilePath);

const start = new Date();
const timeout = setTimeout(() => {
if (!downloadCompleted) {
bar = new ProgressBar(`Downloading ${path.basename(url)}: [:bar] :percent ETA: :eta seconds `, {
curr: progressPercent,
total: 100,
});
// https://github.com/visionmedia/node-progress/issues/159
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(bar as any).start = start;
}
}, PROGRESS_BAR_DELAY_IN_SECONDS * 1000);

await new Promise<void>((resolve, reject) => {
const downloadStream = got.stream(url);
downloadStream.on('downloadProgress', async (progress) => {
progressPercent = progress.percent;
if (bar) {
bar.update(progress.percent);
}
});
downloadStream.on('error', (error) => {
if (error instanceof HTTPError && error.response.statusCode === 404) {
error.message += ` for ${error.response.url}`;
}
if (writeStream.destroy) {
writeStream.destroy(error);
}

reject(error);
});
writeStream.on('error', (error) => reject(error));
writeStream.on('close', () => resolve());

downloadStream.pipe(writeStream);
});

downloadCompleted = true;
if (timeout) {
clearTimeout(timeout);
}
}

0 comments on commit ce32b7d

Please sign in to comment.