45 lines
1.5 KiB
JavaScript
Executable File
45 lines
1.5 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const projectRoot = path.resolve(__dirname, '..');
|
|
|
|
function resolveMonacoPackageJson() {
|
|
try {
|
|
const resolvedPath = require.resolve('monaco-editor/package.json', {
|
|
paths: [projectRoot],
|
|
});
|
|
return resolvedPath;
|
|
} catch (error) {
|
|
console.error('[dees-editor] Unable to resolve monaco-editor/package.json');
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
function getMonacoVersion() {
|
|
const monacoPackagePath = resolveMonacoPackageJson();
|
|
const monacoPackage = require(monacoPackagePath);
|
|
if (!monacoPackage.version) {
|
|
throw new Error('[dees-editor] monaco-editor/package.json does not expose a version field');
|
|
}
|
|
return monacoPackage.version;
|
|
}
|
|
|
|
function writeVersionModule(version) {
|
|
const targetDir = path.join(projectRoot, 'ts_web', 'elements', 'dees-editor');
|
|
fs.mkdirSync(targetDir, { recursive: true });
|
|
const targetFile = path.join(targetDir, 'version.ts');
|
|
const fileContent = `// Auto-generated by scripts/update-monaco-version.cjs\nexport const MONACO_VERSION = '${version}';\n`;
|
|
fs.writeFileSync(targetFile, fileContent, 'utf8');
|
|
console.log(`[dees-editor] Wrote ${path.relative(projectRoot, targetFile)} with monaco-editor@${version}`);
|
|
}
|
|
|
|
try {
|
|
const version = getMonacoVersion();
|
|
writeVersionModule(version);
|
|
} catch (error) {
|
|
console.error('[dees-editor] Failed to update Monaco version module.');
|
|
console.error(error instanceof Error ? error.message : error);
|
|
process.exitCode = 1;
|
|
}
|