summaryrefslogtreecommitdiff
path: root/src/main/util/downloader.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/util/downloader.ts')
-rw-r--r--src/main/util/downloader.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main/util/downloader.ts b/src/main/util/downloader.ts
new file mode 100644
index 0000000..075097d
--- /dev/null
+++ b/src/main/util/downloader.ts
@@ -0,0 +1,28 @@
+var fs = require('fs');
+var request = require('request');
+var progress = require('request-progress');
+
+export type Progress = {
+ percent:number,
+ speed:number,
+ size:{
+ total:number,
+ transfered:number
+ },
+ time:{
+ elapsed:number,
+ remaining:number
+ }
+};
+
+export function download(url:string,targetLocation:string,onprogress: (state:Progress)=>void):Promise<any>{
+ return new Promise((resolve:any,reject:any)=>{
+ progress(request(url), {
+ throttle: 500
+ })
+ .on('progress', onprogress)
+ .on('error', reject)
+ .on('end', resolve)
+ .pipe(fs.createWriteStream(targetLocation));
+ });
+}