prepare-monaco-editor-core-stable.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { mkdir, rm } from 'fs/promises';
  2. import { join, resolve } from 'path';
  3. import { group, gitShallowClone, run, writeJsonFile } from '../lib';
  4. const selfPath = __dirname;
  5. const rootPath = join(selfPath, '..', '..');
  6. const dependenciesPath = join(rootPath, 'dependencies');
  7. const vscodePath = resolve(dependenciesPath, 'vscode');
  8. const monacoEditorPackageJsonPath = resolve(rootPath, 'package.json');
  9. async function prepareMonacoEditorCoreReleaseStable() {
  10. const monacoEditorPackageJson = require(monacoEditorPackageJsonPath) as {
  11. version: string;
  12. vscodeRef: string;
  13. };
  14. await prepareMonacoEditorCoreRelease(
  15. monacoEditorPackageJson.version,
  16. monacoEditorPackageJson.vscodeRef
  17. );
  18. // npm package is now in dependencies/vscode/out-monaco-editor-core, ready to be published
  19. }
  20. async function prepareMonacoEditorCoreRelease(version: string, vscodeRef: string) {
  21. await mkdir(vscodePath, { recursive: true });
  22. await rm(dependenciesPath, { force: true, recursive: true });
  23. await group('Checkout vscode', async () => {
  24. await gitShallowClone(vscodePath, 'https://github.com/microsoft/vscode.git', vscodeRef);
  25. });
  26. await group('Checkout vscode-loc', async () => {
  27. await gitShallowClone(
  28. // Must be a sibling to the vscode repository
  29. 'dependencies/vscode-loc',
  30. 'https://github.com/microsoft/vscode-loc.git',
  31. 'main'
  32. );
  33. });
  34. await group('Set Version', async () => {
  35. const monacoEditorCorePackageJsonSourcePath = resolve(
  36. vscodePath,
  37. './build/monaco/package.json'
  38. );
  39. const packageJson = require(monacoEditorCorePackageJsonSourcePath) as { version: string };
  40. packageJson.version = version;
  41. await writeJsonFile(monacoEditorPackageJsonPath, packageJson);
  42. });
  43. await group('Building & Testing', async () => {
  44. await run(resolve(selfPath, './monaco-editor-core.sh'), { cwd: vscodePath });
  45. });
  46. }
  47. prepareMonacoEditorCoreReleaseStable();