Просмотр исходного кода

Unified Electron host file read (#497)

Lutz Roeder 5 лет назад
Родитель
Сommit
60dafb709d
3 измененных файлов с 7 добавлено и 25 удалено
  1. 5 23
      source/electron.js
  2. 1 1
      test/models.js
  3. 1 1
      test/models.json

+ 5 - 23
source/electron.js

@@ -270,7 +270,7 @@ host.ElectronHost = class {
             const pathname = path.join(base || __dirname, file);
             fs.exists(pathname, (exists) => {
                 if (!exists) {
-                    reject(new Error("File not found '" + file + "'."));
+                    reject(new Error("The file '" + file + "' does not exist."));
                 }
                 else {
                     fs.readFile(pathname, encoding, (err, data) => {
@@ -334,8 +334,10 @@ host.ElectronHost = class {
     _openFile(file) {
         if (file) {
             this._view.show('welcome spinner');
-            this._readFile(file).then((buffer) => {
-                const context = new host.ElectronHost.ElectonContext(this, path.dirname(file), path.basename(file), buffer);
+            const dirname = path.dirname(file);
+            const basename = path.basename(file);
+            this.request(dirname, basename, null).then((buffer) => {
+                const context = new host.ElectronHost.ElectonContext(this, dirname, basename, buffer);
                 this._view.open(context).then((model) => {
                     this._view.show(null);
                     if (model) {
@@ -360,26 +362,6 @@ host.ElectronHost = class {
         }
     }
 
-    _readFile(file) {
-        return new Promise((resolve, reject) => {
-            fs.exists(file, (exists) => {
-                if (!exists) {
-                    reject(new Error('The file \'' + file + '\' does not exist.'));
-                }
-                else {
-                    fs.readFile(file, null, (err, buffer) => {
-                        if (err) {
-                            reject(err);
-                        }
-                        else {
-                            resolve(buffer);
-                        }
-                    });
-                }
-            });
-        });
-    }
-
     _request(url, headers, encoding, timeout) {
         return new Promise((resolve, reject) => {
             const httpModule = url.split(':').shift() === 'https' ? https : http;

+ 1 - 1
test/models.js

@@ -104,7 +104,7 @@ class TestHost {
     request(base, file, encoding) {
         const pathname = path.join(base || path.join(__dirname, '../source'), file);
         if (!fs.existsSync(pathname)) {
-            return Promise.reject(new Error("File not found '" + file + "'."));
+            return Promise.reject(new Error("The file '" + file + "' does not exist."));
         }
         return Promise.resolve(fs.readFileSync(pathname, encoding));
     }

+ 1 - 1
test/models.json

@@ -2942,7 +2942,7 @@
     "type":   "ncnn",
     "target": "squeezenet_v1.1.bin",
     "source": "https://raw.githubusercontent.com/nihui/ncnn-android-squeezenet/master/app/src/main/assets/squeezenet_v1.1.bin",
-    "error":  "File not found 'squeezenet_v1.1.param' in 'squeezenet_v1.1.bin'.",
+    "error":  "The file 'squeezenet_v1.1.param' does not exist in 'squeezenet_v1.1.bin'.",
     "link":   "https://github.com/Tencent/ncnn"
   },
   {