Use import() for dynamic imports

This commit is contained in:
Alex Dima 2018-03-12 12:54:57 +01:00
parent d75e5fdb8f
commit 717952e163
3 changed files with 20 additions and 20 deletions

View file

@ -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));
});

View file

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

View file

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