소스 검색

Rewrite using modern javascript

Sebastien Lebreton 5 년 전
부모
커밋
8b9833eab4
3개의 변경된 파일27개의 추가작업 그리고 33개의 파일을 삭제
  1. 1 1
      Playground/js/main.js
  2. 1 1
      Playground/js/mainWebGPU.js
  3. 25 31
      Playground/js/monacoCreator.js

+ 1 - 1
Playground/js/main.js

@@ -40,7 +40,7 @@ compileAndRun = function(parent, fpsLabel) {
         var createEngineFunction = "createDefaultEngine";
         var createSceneFunction;
 
-        parent.monacoCreator.getRunCode(function (code) {
+        parent.monacoCreator.getRunCode().then(function (code) {
             var createDefaultEngine = function () {
                 return new BABYLON.Engine(canvas, true, { preserveDrawingBuffer: true, stencil: true });
             }

+ 1 - 1
Playground/js/mainWebGPU.js

@@ -45,7 +45,7 @@ compileAndRun = function(parent, fpsLabel) {
             return;
         }
 
-        parent.monacoCreator.getRunCode((async function (code) {
+        parent.monacoCreator.getRunCode().then((async function (code) {
             try {
                 var createDefaultEngine = function () {
                     return new BABYLON.WebGPUEngine(canvas);

+ 25 - 31
Playground/js/monacoCreator.js

@@ -145,44 +145,38 @@ class MonacoCreator {
 
     /**
      * Get the code in the editor
-     * @param {Function} callBack : Function that will be called after retrieving the code.
      */
-    getRunCode(callBack) {
+    async getRunCode() {
         var parent = this.parent;
 
         if (parent.settingsPG.ScriptLanguage == "JS")
             callBack(this.jsEditor.getValue());
+            
         else if (parent.settingsPG.ScriptLanguage == "TS") {
-            var model = this.jsEditor.getModel();
-            var uri = model.uri;
-
-            monaco.languages.typescript.getTypeScriptWorker()
-            .then(function(worker) {
-                worker(uri)
-                .then(function(languageService) {
-                    var uriStr = uri.toString();
-
-                    Promise.all([languageService.getSyntacticDiagnostics(uriStr), languageService.getSemanticDiagnostics(uriStr)])
-                    .then(function(diagnostics) {
-                        diagnostics.forEach(function(diagset) {
-                            if (diagset.length) {
-                                var diagnostic = diagset[0];
-                                var position = model.getPositionAt(diagnostic.start);
-                                
-                                parent.utils.showError(`Line ${position.lineNumber}:${position.column} - ${diagnostic.messageText}`);
-                                return;
-                            }
-                        });
-                    });
-
-                    languageService.getEmitOutput(uriStr)
-                    .then(function(result) {
-                        var output = result.outputFiles[0].text;
-                        var stub = "var createScene = function() { return Playground.CreateScene(engine, engine.getRenderingCanvas()); }";
-                        callBack(output + stub);
-                    });
-                });
+            const model = this.jsEditor.getModel();
+            const uri = model.uri;
+
+            const worker = await monaco.languages.typescript.getTypeScriptWorker();
+            const languageService = await worker(uri);
+
+            const uriStr = uri.toString();
+            const diagnostics = await Promise.all([languageService.getSyntacticDiagnostics(uriStr), languageService.getSemanticDiagnostics(uriStr)]);
+
+            diagnostics.forEach(function(diagset) {
+                if (diagset.length) {
+                    var diagnostic = diagset[0];
+                    var position = model.getPositionAt(diagnostic.start);
+                    
+                    parent.utils.showError(`Line ${position.lineNumber}:${position.column} - ${diagnostic.messageText}`);
+                    return;
+                }
             });
+
+            const result = await languageService.getEmitOutput(uri.toString());
+            const output = result.outputFiles[0].text;
+            const stub = "var createScene = function() { return Playground.CreateScene(engine, engine.getRenderingCanvas()); }";
+
+            return output + stub;
         }
     };
 };