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

View file

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

View file

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