Sfoglia il codice sorgente

Use import() for dynamic imports

Alex Dima 7 anni fa
parent
commit
717952e163
3 ha cambiato i file con 20 aggiunte e 20 eliminazioni
  1. 6 18
      src/monaco.contribution.ts
  2. 7 1
      src/tsconfig.esm.json
  3. 7 1
      src/tsconfig.json

+ 6 - 18
src/monaco.contribution.ts

@@ -10,8 +10,6 @@ import Emitter = monaco.Emitter;
 import IEvent = monaco.IEvent;
 import IDisposable = monaco.IDisposable;
 
-declare var require: <T>(moduleId: [string], callback: (module: T) => void) => void;
-
 // --- TypeScript configuration and defaults ---------
 
 export class LanguageServiceDefaultsImpl implements monaco.languages.typescript.LanguageServiceDefaults {
@@ -160,21 +158,11 @@ const javascriptDefaults = new LanguageServiceDefaultsImpl(
 	{ noSemanticValidation: true, noSyntaxValidation: false });
 
 function getTypeScriptWorker(): monaco.Promise<any> {
-	return new monaco.Promise((resolve, reject) => {
-		withMode((mode) => {
-			mode.getTypeScriptWorker()
-				.then(resolve, reject);
-		});
-	});
+	return getMode().then(mode => mode.getTypeScriptWorker());
 }
 
 function getJavaScriptWorker(): monaco.Promise<any> {
-	return new monaco.Promise((resolve, reject) => {
-		withMode((mode) => {
-			mode.getJavaScriptWorker()
-				.then(resolve, reject);
-		});
-	});
+	return getMode().then(mode => mode.getJavaScriptWorker());
 }
 
 // Export API
@@ -195,8 +183,8 @@ monaco.languages.typescript = createAPI();
 
 // --- Registration to monaco editor ---
 
-function withMode(callback: (module: typeof mode) => void): void {
-	require<typeof mode>(['./mode'], callback);
+function getMode(): monaco.Promise<typeof mode> {
+	return monaco.Promise.wrap(import('./mode'))
 }
 
 monaco.languages.register({
@@ -206,7 +194,7 @@ monaco.languages.register({
 	mimetypes: ['text/typescript']
 });
 monaco.languages.onLanguage('typescript', () => {
-	withMode((mode) => mode.setupTypeScript(typescriptDefaults));
+	return getMode().then(mode => mode.setupTypeScript(typescriptDefaults));
 });
 
 monaco.languages.register({
@@ -218,5 +206,5 @@ monaco.languages.register({
 	mimetypes: ['text/javascript'],
 });
 monaco.languages.onLanguage('javascript', () => {
-	withMode((mode) => mode.setupJavaScript(javascriptDefaults));
+	return getMode().then(mode => mode.setupJavaScript(javascriptDefaults));
 });

+ 7 - 1
src/tsconfig.esm.json

@@ -2,7 +2,13 @@
   "compilerOptions": {
     "module": "es6",
     "outDir": "../release/esm",
-    "target": "es5"
+    "target": "es5",
+    "lib": [
+      "dom",
+      "es5",
+      "es2015.collection",
+      "es2015.promise"
+    ]
   },
   "include": [
     "**/*.ts"

+ 7 - 1
src/tsconfig.json

@@ -2,7 +2,13 @@
   "compilerOptions": {
     "module": "amd",
     "outDir": "../release/dev",
-    "target": "es5"
+    "target": "es5",
+    "lib": [
+      "dom",
+      "es5",
+      "es2015.collection",
+      "es2015.promise"
+    ]
   },
   "include": [
     "**/*.ts"