Lutz Roeder 2 éve
szülő
commit
be9c945e73
1 módosított fájl, 15 hozzáadás és 10 törlés
  1. 15 10
      source/index.js

+ 15 - 10
source/index.js

@@ -5,26 +5,31 @@ if (window.location.hostname.endsWith('.github.io')) {
     window.location.replace('https://netron.app');
 }
 
-window.require = function(id, callback) {
+window.require = function(id, callback, preload) {
     var name = id.startsWith('./') ? id.substring(2) : id;
-    var value = window[name];
+    var key = name === 'browser' ? 'host' : name;
+    var value = window[key];
     if (callback) {
-        if (value && id !== 'browser') {
+        if (value) {
             return callback(value);
         }
         window.module = { exports: {} };
         var url = new URL(id + '.js', window.location.href).href;
         var script = document.createElement('script');
-        script.setAttribute('id', id);
+        script.setAttribute('id', 'script-' + id);
         script.setAttribute('type', 'text/javascript');
         /* eslint-disable no-use-before-define */
         var loadHandler = function() {
             script.removeEventListener('load', loadHandler);
             script.removeEventListener('error', errorHandler);
-            var module = window[name];
+            var module = window[key];
             if (!module) {
+                if (preload) {
+                    callback(null, new Error('The script \'' + id + '\' failed to load.'));
+                    return;
+                }
                 module = window.module.exports;
-                window[name] = module;
+                window[key] = module;
             }
             delete window.module;
             callback(module);
@@ -51,9 +56,9 @@ window.require = function(id, callback) {
 
 window.preload = function(callback) {
     var modules = [
-        [ 'view' ],
-        [ 'json', 'xml', 'protobuf', 'hdf5', 'grapher', 'browser' ],
-        [ 'base', 'text', 'flatbuffers', 'flexbuffers', 'zip',  'tar', 'python', 'dagre' ]
+        [ './view' ],
+        [ './json', './xml', './protobuf', './hdf5', './grapher', './browser' ],
+        [ './base', './text', './flatbuffers', './flexbuffers', './zip',  './tar', './python', './dagre' ]
     ];
     var next = function() {
         if (modules.length === 0) {
@@ -72,7 +77,7 @@ window.preload = function(callback) {
                 if (resolved === 0) {
                     next();
                 }
-            });
+            }, true);
         }
     };
     next();