build-languages.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. import glob from 'glob';
  6. import { runTsc, massageAndCopyDts, buildESM } from './utils';
  7. import { removeDir } from './fs';
  8. removeDir(`out/languages`);
  9. runTsc(`src/tsconfig.json`);
  10. //#region Type Defintion
  11. massageAndCopyDts(
  12. `out/languages/tsc/language/css/monaco.contribution.d.ts`,
  13. `out/languages/bundled/css.d.ts`,
  14. 'monaco.languages.css'
  15. );
  16. massageAndCopyDts(
  17. `out/languages/tsc/language/html/monaco.contribution.d.ts`,
  18. `out/languages/bundled/html.d.ts`,
  19. 'monaco.languages.html'
  20. );
  21. massageAndCopyDts(
  22. `out/languages/tsc/language/json/monaco.contribution.d.ts`,
  23. `out/languages/bundled/json.d.ts`,
  24. 'monaco.languages.json'
  25. );
  26. massageAndCopyDts(
  27. `out/languages/tsc/language/typescript/monaco.contribution.d.ts`,
  28. `out/languages/bundled/typescript.d.ts`,
  29. 'monaco.languages.typescript'
  30. );
  31. //#endregion
  32. //#region css
  33. buildESM({
  34. base: 'language/css',
  35. entryPoints: [
  36. 'src/language/css/monaco.contribution.ts',
  37. 'src/language/css/cssMode.ts',
  38. 'src/language/css/css.worker.ts'
  39. ],
  40. external: ['monaco-editor-core', '*/cssMode', '*/monaco.contribution']
  41. });
  42. //#endregion
  43. //#region html
  44. buildESM({
  45. base: 'language/html',
  46. entryPoints: [
  47. 'src/language/html/monaco.contribution.ts',
  48. 'src/language/html/htmlMode.ts',
  49. 'src/language/html/html.worker.ts'
  50. ],
  51. external: ['monaco-editor-core', '*/htmlMode', '*/monaco.contribution']
  52. });
  53. //#endregion
  54. //#region json
  55. buildESM({
  56. base: 'language/json',
  57. entryPoints: [
  58. 'src/language/json/monaco.contribution.ts',
  59. 'src/language/json/jsonMode.ts',
  60. 'src/language/json/json.worker.ts'
  61. ],
  62. external: ['monaco-editor-core', '*/jsonMode', '*/monaco.contribution']
  63. });
  64. //#endregion
  65. //#region typescript
  66. buildESM({
  67. base: 'language/typescript',
  68. entryPoints: [
  69. 'src/language/typescript/monaco.contribution.ts',
  70. 'src/language/typescript/tsMode.ts',
  71. 'src/language/typescript/ts.worker.ts'
  72. ],
  73. external: ['monaco-editor-core', '*/tsMode', '*/monaco.contribution']
  74. });
  75. //#endregion
  76. //#region basic-languages
  77. glob('../src/basic-languages/*/*.contribution.ts', { cwd: __dirname }, function (err, files) {
  78. if (err) {
  79. console.error(err);
  80. return;
  81. }
  82. const languages = files.map((file) => file.split('/')[3]);
  83. // ESM
  84. {
  85. /** @type {string[]} */
  86. const entryPoints = [
  87. 'src/basic-languages/monaco.contribution.ts',
  88. 'src/basic-languages/_.contribution.ts'
  89. ];
  90. const external = ['monaco-editor-core', '*/_.contribution'];
  91. for (const language of languages) {
  92. entryPoints.push(`src/basic-languages/${language}/${language}.contribution.ts`);
  93. entryPoints.push(`src/basic-languages/${language}/${language}.ts`);
  94. external.push(`*/${language}.contribution`);
  95. external.push(`*/${language}`);
  96. }
  97. buildESM({
  98. base: 'basic-languages',
  99. entryPoints,
  100. external
  101. });
  102. }
  103. });
  104. //#endregion