prepare-monaco-editor.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { readFile } from 'fs/promises';
  2. import { join, resolve } from 'path';
  3. import { getNightlyVersion, group, run, writeJsonFile } from '../lib';
  4. const selfPath = __dirname;
  5. const rootPath = join(selfPath, '..', '..');
  6. const monacoEditorPackageJsonPath = resolve(rootPath, 'package.json');
  7. async function prepareMonacoEditorReleaseStableOrNightly() {
  8. const monacoEditorPackageJson = JSON.parse(
  9. await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' })
  10. ) as { version: string };
  11. let version: string;
  12. const arg = process.argv[2];
  13. if (arg === 'stable') {
  14. version = monacoEditorPackageJson.version;
  15. } else if (arg === 'nightly') {
  16. version = getNightlyVersion(monacoEditorPackageJson.version);
  17. } else {
  18. throw new Error('Invalid argument');
  19. }
  20. await prepareMonacoEditorRelease(version);
  21. // npm package is now in ./release, ready to be published
  22. }
  23. async function prepareMonacoEditorRelease(version: string) {
  24. await group('npm ci', async () => {
  25. await run('npm ci', { cwd: resolve(rootPath, 'webpack-plugin') });
  26. });
  27. await group('Set Version', async () => {
  28. const packageJson = JSON.parse(
  29. await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' })
  30. ) as { version: string; devDependencies: Record<string, string> };
  31. packageJson.version = version;
  32. packageJson.devDependencies['monaco-editor-core'] = version;
  33. await writeJsonFile(monacoEditorPackageJsonPath, packageJson);
  34. });
  35. await group('Building & Testing', async () => {
  36. await run(resolve(selfPath, './monaco-editor.sh'), { cwd: rootPath });
  37. });
  38. }
  39. prepareMonacoEditorReleaseStableOrNightly();