瀏覽代碼

feat(forceCaches): forceCaches option to bypass lookup (#111)

* feat(Downloader): forceCaches option to bypass lookup

* feat(FFmpegDownloader): forceCaches option to bypass lookup

* feat(Runner): propagate forceCaches option

* feat(Builder): propagate forceCaches option
Alexandre Kirszenberg 7 年之前
父節點
當前提交
5265647864
共有 4 個文件被更改,包括 19 次插入0 次删除
  1. 3 0
      src/lib/Builder.ts
  2. 6 0
      src/lib/Downloader.ts
  3. 6 0
      src/lib/FFmpegDownloader.ts
  4. 4 0
      src/lib/Runner.ts

+ 3 - 0
src/lib/Builder.ts

@@ -35,6 +35,7 @@ export interface IBuilderOptions {
     mirror?: string;
     concurrent?: boolean;
     mute?: boolean;
+    forceCaches?: boolean;
     destination?: string;
 }
 
@@ -51,6 +52,7 @@ export class Builder {
         mirror: Downloader.DEFAULT_OPTIONS.mirror,
         concurrent: false,
         mute: true,
+        forceCaches: Downloader.DEFAULT_OPTIONS.forceCaches,
         destination: DownloaderBase.DEFAULT_DESTINATION,
     };
 
@@ -843,6 +845,7 @@ export class Builder {
             mirror: this.options.mirror,
             useCaches: true,
             showProgress: this.options.mute ? false : true,
+            forceCaches: this.options.forceCaches,
             destination: this.options.destination,
         });
 

+ 6 - 0
src/lib/Downloader.ts

@@ -14,6 +14,7 @@ export interface IDownloaderOptions {
     mirror?: string;
     useCaches?: boolean;
     showProgress?: boolean;
+    forceCaches?: boolean;
     destination?: string;
 }
 
@@ -27,6 +28,7 @@ export class Downloader extends DownloaderBase {
         mirror: 'https://dl.nwjs.io/',
         useCaches: true,
         showProgress: true,
+        forceCaches: false,
         destination: DownloaderBase.DEFAULT_DESTINATION,
     };
 
@@ -67,6 +69,10 @@ export class Downloader extends DownloaderBase {
         debug('in fetch', 'filename', filename);
         debug('in fetch', 'path', path);
 
+        if (this.options.forceCaches && await this.isFileExists(path)) {
+            return path;
+        }
+
         try {
             if(await this.isFileExists(path) && await this.isFileSynced(url, path)) {
                 return path;

+ 6 - 0
src/lib/FFmpegDownloader.ts

@@ -30,6 +30,7 @@ export interface IFFmpegDownloaderOptions {
     mirror?: string;
     useCaches?: boolean;
     showProgress?: boolean;
+    forceCaches?: boolean;
     destination?: string;
 }
 
@@ -42,6 +43,7 @@ export class FFmpegDownloader extends DownloaderBase {
         mirror: 'https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases/download/',
         useCaches: true,
         showProgress: true,
+        forceCaches: false,
         destination: DownloaderBase.DEFAULT_DESTINATION,
     };
 
@@ -76,6 +78,10 @@ export class FFmpegDownloader extends DownloaderBase {
         debug('in fetch', 'filename', filename);
         debug('in fetch', 'path', path);
 
+        if (this.options.forceCaches && await this.isFileExists(path)) {
+            return path;
+        }
+
         try {
             if(await this.isFileExists(path) && await this.isFileSynced(url, path)) {
                 return path;

+ 4 - 0
src/lib/Runner.ts

@@ -19,6 +19,7 @@ export interface IRunnerOptions {
     mirror?: string;
     detached?: boolean;
     mute?: boolean;
+    forceCaches?: boolean;
     destination?: string;
 }
 
@@ -31,6 +32,7 @@ export class Runner {
         mirror: Downloader.DEFAULT_OPTIONS.mirror,
         detached: false,
         mute: true,
+        forceCaches: Downloader.DEFAULT_OPTIONS.forceCaches,
         destination: DownloaderBase.DEFAULT_DESTINATION,
     };
 
@@ -64,6 +66,7 @@ export class Runner {
             mirror: this.options.mirror,
             useCaches: true,
             showProgress: this.options.mute ? false : true,
+            forceCaches: this.options.forceCaches,
             destination: this.options.destination,
         });
 
@@ -127,6 +130,7 @@ export class Runner {
             version: config.nwVersion,
             useCaches: true,
             showProgress: this.options.mute ? false : true,
+            forceCaches: this.options.forceCaches,
             destination: this.options.destination,
         });