From 5142ee6c3060c36744263a2628436b4fd64dba63 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Tue, 15 May 2018 11:23:21 +0200 Subject: [PATCH] Fixes #871 --- gulpfile.js | 77 ++++++++++++++++++++++++++--------------------- package-lock.json | 6 ++-- package.json | 2 +- 3 files changed, 46 insertions(+), 39 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 1f7aba8c4d..72f9f19a67 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -203,7 +203,11 @@ function addPluginContribs(type) { function ESM_release() { return es.merge( - gulp.src('node_modules/monaco-editor-core/esm/**/*') + gulp.src([ + 'node_modules/monaco-editor-core/esm/**/*', + // we will create our own editor.api.d.ts which also contains the plugins API + '!node_modules/monaco-editor-core/esm/vs/editor/editor.api.d.ts' + ]) .pipe(ESM_addImportSuffix()) .pipe(ESM_addPluginContribs('release/esm')) .pipe(gulp.dest('release/esm')), @@ -414,48 +418,51 @@ function addPluginDTS() { data.contents = new Buffer(contents); - { - let lines = contents.split('\n'); - let killNextCloseCurlyBrace = false; - for (let i = 0; i < lines.length; i++) { - let line = lines[i]; - - if (killNextCloseCurlyBrace) { - if ('}' === line) { - lines[i] = ''; - killNextCloseCurlyBrace = false; - continue; - } + this.emit('data', new File({ + path: path.join(path.dirname(data.path), 'esm/vs/editor/editor.api.d.ts'), + base: data.base, + contents: new Buffer(toExternalDTS(contents)) + })); - if (line.indexOf(' ') === 0) { - lines[i] = line.substr(4); - } + fs.writeFileSync('website/playground/monaco.d.ts.txt', contents); + fs.writeFileSync('monaco.d.ts', contents); + this.emit('data', data); + }); +} - continue; - } +function toExternalDTS(contents) { + let lines = contents.split('\n'); + let killNextCloseCurlyBrace = false; + for (let i = 0; i < lines.length; i++) { + let line = lines[i]; - if ('declare namespace monaco {' === line) { - lines[i] = ''; - killNextCloseCurlyBrace = true; - continue; - } + if (killNextCloseCurlyBrace) { + if ('}' === line) { + lines[i] = ''; + killNextCloseCurlyBrace = false; + continue; + } - if (line.indexOf('declare namespace monaco.') === 0) { - lines[i] = line.replace('declare namespace monaco.', 'export namespace '); - } + if (line.indexOf(' ') === 0) { + lines[i] = line.substr(4); + } else if (line.charAt(0) === '\t') { + lines[i] = line.substr(1); } - this.emit('data', new File({ - path: path.join(path.dirname(data.path), 'esm/vs/editor/editor.api.d.ts'), - base: data.base, - contents: new Buffer(lines.join('\n')) - })); + continue; } - fs.writeFileSync('website/playground/monaco.d.ts.txt', contents); - fs.writeFileSync('monaco.d.ts', contents); - this.emit('data', data); - }); + if ('declare namespace monaco {' === line) { + lines[i] = ''; + killNextCloseCurlyBrace = true; + continue; + } + + if (line.indexOf('declare namespace monaco.') === 0) { + lines[i] = line.replace('declare namespace monaco.', 'export namespace '); + } + } + return lines.join('\n'); } /** diff --git a/package-lock.json b/package-lock.json index 3b66e52661..506ca9fde9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2327,9 +2327,9 @@ "dev": true }, "monaco-editor-core": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.13.1.tgz", - "integrity": "sha512-K+cmar8dUF/YcaQXt/3PWKQxA/i7qQLLq5GBWxBKheuW9uOCi25zYInVRgZROeA+jjB6UAowqgYr7ydsbPjbFQ==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.13.2.tgz", + "integrity": "sha512-UwUpmT+37fryykVcfuG/KA3sUV/Siip2V+kzzH/F6gzi6QGAe/A/qvr5sfTALdoW55V5aVpUNctPFUw5Bm1Qeg==", "dev": true }, "monaco-html": { diff --git a/package.json b/package.json index c159ce2455..dd46dad047 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "gulp-typedoc": "^2.0.0", "http-server": "^0.11.1", "monaco-css": "2.1.1", - "monaco-editor-core": "0.13.1", + "monaco-editor-core": "0.13.2", "monaco-html": "2.1.1", "monaco-json": "2.1.1", "monaco-languages": "1.3.1",