From 52d68ac7c4d071bb522d0bf81aaa180a2912de62 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Thu, 11 Sep 2025 17:39:10 +0200 Subject: [PATCH] Fixes https://github.com/microsoft/monaco-editor/issues/4906 (#4994) --- scripts/ci/build-monaco-editor-pkg.ts | 33 +++++++++++++++++++++++++++ scripts/lib/index.ts | 1 + 2 files changed, 34 insertions(+) diff --git a/scripts/ci/build-monaco-editor-pkg.ts b/scripts/ci/build-monaco-editor-pkg.ts index ae6fb853..59e31d4e 100644 --- a/scripts/ci/build-monaco-editor-pkg.ts +++ b/scripts/ci/build-monaco-editor-pkg.ts @@ -46,8 +46,26 @@ async function prepareMonacoEditorRelease(monacoEditorCoreVersion: string) { const packageJson = JSON.parse( await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' }) ) as PackageJson; + packageJson.version = monacoEditorCoreVersion; packageJson.devDependencies['monaco-editor-core'] = monacoEditorCoreVersion; + + const monacoEditorCorePackageJson = JSON.parse( + await readFile(monacoEditorCorePackageJsonPath, { encoding: 'utf-8' }) + ) as PackageJson; + + if (monacoEditorCorePackageJson.dependencies) { + if (!packageJson.dependencies) { + packageJson.dependencies = {}; + } + + objectMergeThrowIfSet( + packageJson.dependencies, + monacoEditorCorePackageJson.dependencies, + 'dependencies' + ); + } + await writeJsonFile(monacoEditorPackageJsonPath, packageJson); }); @@ -81,4 +99,19 @@ async function prepareMonacoEditorRelease(monacoEditorCoreVersion: string) { }); } +function objectMergeThrowIfSet( + target: Record, + source: Record, + fieldName: string +): void { + for (const [key, value] of Object.entries(source)) { + if (key in target) { + throw new Error( + `Cannot merge ${fieldName}: property '${key}' already exists in target with value '${target[key]}', would be overridden with '${value}'` + ); + } + target[key] = value; + } +} + prepareMonacoEditorReleaseStableOrNightly(); diff --git a/scripts/lib/index.ts b/scripts/lib/index.ts index 9f1c8b71..894aa3af 100644 --- a/scripts/lib/index.ts +++ b/scripts/lib/index.ts @@ -92,4 +92,5 @@ export interface PackageJson { vscodeCommitId?: string; monacoCommitId?: string; devDependencies: Record; + dependencies?: Record; }