Răsfoiți Sursa

Update tflite.js

Lutz Roeder 2 ani în urmă
părinte
comite
0c443a851c
1 a modificat fișierele cu 39 adăugiri și 41 ștergeri
  1. 39 41
      source/tflite.js

+ 39 - 41
source/tflite.js

@@ -31,52 +31,50 @@ tflite.ModelFactory = class {
         return undefined;
     }
 
-    open(context, match) {
-        return context.require('./tflite-schema').then(() => {
-            tflite.schema = flatbuffers.get('tflite').tflite;
-            let model = null;
-            const attachments = new Map();
-            switch (match) {
-                case 'tflite.flatbuffers.json': {
-                    try {
-                        const obj = context.open('json');
-                        const reader = new flatbuffers.TextReader(obj);
-                        model = tflite.schema.Model.createText(reader);
-                    } catch (error) {
-                        const message = error && error.message ? error.message : error.toString();
-                        throw new tflite.Error('File text format is not tflite.Model (' + message.replace(/\.$/, '') + ').');
-                    }
-                    break;
+    async open(context, match) {
+        await context.require('./tflite-schema');
+        tflite.schema = flatbuffers.get('tflite').tflite;
+        let model = null;
+        const attachments = new Map();
+        switch (match) {
+            case 'tflite.flatbuffers.json': {
+                try {
+                    const obj = context.open('json');
+                    const reader = new flatbuffers.TextReader(obj);
+                    model = tflite.schema.Model.createText(reader);
+                } catch (error) {
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new tflite.Error('File text format is not tflite.Model (' + message.replace(/\.$/, '') + ').');
                 }
-                case 'tflite.flatbuffers': {
-                    const stream = context.stream;
-                    try {
-                        const reader = flatbuffers.BinaryReader.open(stream);
-                        model = tflite.schema.Model.create(reader);
-                    } catch (error) {
-                        const message = error && error.message ? error.message : error.toString();
-                        throw new tflite.Error('File format is not tflite.Model (' + message.replace(/\.$/, '') + ').');
-                    }
-                    try {
-                        const archive = zip.Archive.open(stream);
-                        if (archive) {
-                            for (const entry of archive.entries) {
-                                attachments.set(entry[0], entry[1]);
-                            }
+                break;
+            }
+            case 'tflite.flatbuffers': {
+                const stream = context.stream;
+                try {
+                    const reader = flatbuffers.BinaryReader.open(stream);
+                    model = tflite.schema.Model.create(reader);
+                } catch (error) {
+                    const message = error && error.message ? error.message : error.toString();
+                    throw new tflite.Error('File format is not tflite.Model (' + message.replace(/\.$/, '') + ').');
+                }
+                try {
+                    const archive = zip.Archive.open(stream);
+                    if (archive) {
+                        for (const entry of archive.entries) {
+                            attachments.set(entry[0], entry[1]);
                         }
-                    } catch (error) {
-                        // continue regardless of error
                     }
-                    break;
-                }
-                default: {
-                    throw new tflite.Error("Unsupported TensorFlow Lite format '" + match + "'.");
+                } catch (error) {
+                    // continue regardless of error
                 }
+                break;
             }
-            return context.metadata('tflite-metadata.json').then((metadata) => {
-                return new tflite.Model(metadata, model);
-            });
-        });
+            default: {
+                throw new tflite.Error("Unsupported TensorFlow Lite format '" + match + "'.");
+            }
+        }
+        const metadata = await context.metadata('tflite-metadata.json');
+        return new tflite.Model(metadata, model);
     }
 };