Browse Source

added support for module.exports in UI::inlineJS

Piotr Labudda 7 năm trước cách đây
mục cha
commit
5c2c37fadb
1 tập tin đã thay đổi với 7 bổ sung1 xóa
  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!");
 		UI::startTag('script', [], "\n");
 		echo "(function (global) {" . "\n";
+		echo "  var module = {}; module.exports = {};\n";
 		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 "  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";
 		UI::endTag('script', "\n");
 	}