Selaa lähdekoodia

added support for module.exports in UI::inlineJS

Piotr Labudda 7 vuotta sitten
vanhempi
commit
5c2c37fadb
1 muutettua tiedostoa jossa 7 lisäystä ja 1 poistoa
  1. 7 1
      SE/se-lib/UI.php

+ 7 - 1
SE/se-lib/UI.php

@@ -272,10 +272,16 @@ class UI {
 		if (!file_exists($jsFile)) throw new Exception("js file '" . basename($jsFile) . "' not exists!");
 		if (!file_exists($jsFile)) throw new Exception("js file '" . basename($jsFile) . "' not exists!");
 		UI::startTag('script', [], "\n");
 		UI::startTag('script', [], "\n");
 		echo "(function (global) {" . "\n";
 		echo "(function (global) {" . "\n";
+		echo "  var module = {}; module.exports = {};\n";
 		foreach ($jsonVars as $name => $var) {
 		foreach ($jsonVars as $name => $var) {
-			echo "var {$name} = " . json_encode($var) . ";\n";
+			echo "  var {$name} = " . json_encode($var) . ";\n";
 		}
 		}
 		echo file_get_contents($jsFile);
 		echo file_get_contents($jsFile);
+		echo "  if (module && module.exports && Object.keys(module.exports).length) {" . "\n";
+		echo "    Object.keys(module.exports).forEach(function (key) {" . "\n";
+		echo "      global[key] = module.exports[key];" . "\n";
+		echo "    })" . "\n";
+		echo "  }" . "\n";
 		echo "})(window)" . "\n";
 		echo "})(window)" . "\n";
 		UI::endTag('script', "\n");
 		UI::endTag('script', "\n");
 	}
 	}