build-languages.ts 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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, buildAMD } from './utils';
  7. import { copyFile, removeDir } from './fs';
  8. removeDir(`out/languages`);
  9. runTsc(`src/tsconfig.json`);
  10. //#region Type Defintion
  11. massageAndCopyDts(
  12. `out/languages/amd-tsc/language/css/monaco.contribution.d.ts`,
  13. `out/languages/bundled/css.d.ts`,
  14. 'monaco.languages.css'
  15. );
  16. massageAndCopyDts(
  17. `out/languages/amd-tsc/language/html/monaco.contribution.d.ts`,
  18. `out/languages/bundled/html.d.ts`,
  19. 'monaco.languages.html'
  20. );
  21. massageAndCopyDts(
  22. `out/languages/amd-tsc/language/json/monaco.contribution.d.ts`,
  23. `out/languages/bundled/json.d.ts`,
  24. 'monaco.languages.json'
  25. );
  26. massageAndCopyDts(
  27. `out/languages/amd-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. buildAMD({
  43. base: 'language/css',
  44. entryPoint: 'src/language/css/monaco.contribution.ts',
  45. amdModuleId: 'vs/language/css/monaco.contribution',
  46. amdDependencies: ['vs/editor/editor.api']
  47. });
  48. buildAMD({
  49. base: 'language/css',
  50. entryPoint: 'src/language/css/cssMode.ts',
  51. amdModuleId: 'vs/language/css/cssMode',
  52. external: ['*/monaco.contribution']
  53. });
  54. buildAMD({
  55. base: 'language/css',
  56. entryPoint: 'src/language/css/cssWorker.ts',
  57. amdModuleId: 'vs/language/css/cssWorker'
  58. });
  59. //#endregion
  60. //#region html
  61. buildESM({
  62. base: 'language/html',
  63. entryPoints: [
  64. 'src/language/html/monaco.contribution.ts',
  65. 'src/language/html/htmlMode.ts',
  66. 'src/language/html/html.worker.ts'
  67. ],
  68. external: ['monaco-editor-core', '*/htmlMode', '*/monaco.contribution']
  69. });
  70. buildAMD({
  71. base: 'language/html',
  72. entryPoint: 'src/language/html/monaco.contribution.ts',
  73. amdModuleId: 'vs/language/html/monaco.contribution',
  74. amdDependencies: ['vs/editor/editor.api']
  75. });
  76. buildAMD({
  77. base: 'language/html',
  78. entryPoint: 'src/language/html/htmlMode.ts',
  79. amdModuleId: 'vs/language/html/htmlMode',
  80. external: ['*/monaco.contribution']
  81. });
  82. buildAMD({
  83. base: 'language/html',
  84. entryPoint: 'src/language/html/htmlWorker.ts',
  85. amdModuleId: 'vs/language/html/htmlWorker'
  86. });
  87. //#endregion
  88. //#region json
  89. buildESM({
  90. base: 'language/json',
  91. entryPoints: [
  92. 'src/language/json/monaco.contribution.ts',
  93. 'src/language/json/jsonMode.ts',
  94. 'src/language/json/json.worker.ts'
  95. ],
  96. external: ['monaco-editor-core', '*/jsonMode', '*/monaco.contribution']
  97. });
  98. buildAMD({
  99. base: 'language/json',
  100. entryPoint: 'src/language/json/monaco.contribution.ts',
  101. amdModuleId: 'vs/language/json/monaco.contribution',
  102. amdDependencies: ['vs/editor/editor.api']
  103. });
  104. buildAMD({
  105. base: 'language/json',
  106. entryPoint: 'src/language/json/jsonMode.ts',
  107. amdModuleId: 'vs/language/json/jsonMode',
  108. external: ['*/monaco.contribution']
  109. });
  110. buildAMD({
  111. base: 'language/json',
  112. entryPoint: 'src/language/json/jsonWorker.ts',
  113. amdModuleId: 'vs/language/json/jsonWorker'
  114. });
  115. //#endregion
  116. //#region typescript
  117. buildESM({
  118. base: 'language/typescript',
  119. entryPoints: [
  120. 'src/language/typescript/monaco.contribution.ts',
  121. 'src/language/typescript/tsMode.ts',
  122. 'src/language/typescript/ts.worker.ts'
  123. ],
  124. external: ['monaco-editor-core', '*/tsMode', '*/monaco.contribution']
  125. });
  126. buildAMD({
  127. base: 'language/typescript',
  128. entryPoint: 'src/language/typescript/monaco.contribution.ts',
  129. amdModuleId: 'vs/language/typescript/monaco.contribution',
  130. amdDependencies: ['vs/editor/editor.api']
  131. });
  132. buildAMD({
  133. base: 'language/typescript',
  134. entryPoint: 'src/language/typescript/tsMode.ts',
  135. amdModuleId: 'vs/language/typescript/tsMode',
  136. external: ['*/monaco.contribution']
  137. });
  138. buildAMD({
  139. base: 'language/typescript',
  140. entryPoint: 'src/language/typescript/tsWorker.ts',
  141. amdModuleId: 'vs/language/typescript/tsWorker'
  142. });
  143. //#endregion
  144. //#region basic-languages
  145. glob('../src/basic-languages/*/*.contribution.ts', { cwd: __dirname }, function (err, files) {
  146. if (err) {
  147. console.error(err);
  148. return;
  149. }
  150. const languages = files.map((file) => file.split('/')[3]);
  151. // ESM
  152. {
  153. /** @type {string[]} */
  154. const entryPoints = [
  155. 'src/basic-languages/monaco.contribution.ts',
  156. 'src/basic-languages/_.contribution.ts'
  157. ];
  158. const external = ['monaco-editor-core', '*/_.contribution'];
  159. for (const language of languages) {
  160. entryPoints.push(`src/basic-languages/${language}/${language}.contribution.ts`);
  161. entryPoints.push(`src/basic-languages/${language}/${language}.ts`);
  162. external.push(`*/${language}.contribution`);
  163. external.push(`*/${language}`);
  164. }
  165. buildESM({
  166. base: 'basic-languages',
  167. entryPoints,
  168. external
  169. });
  170. }
  171. // AMD
  172. {
  173. buildAMD({
  174. base: 'basic-languages',
  175. entryPoint: 'src/basic-languages/monaco.contribution.ts',
  176. amdModuleId: 'vs/basic-languages/monaco.contribution',
  177. amdDependencies: ['vs/editor/editor.api']
  178. });
  179. for (const language of languages) {
  180. buildAMD({
  181. base: 'basic-languages',
  182. entryPoint: `src/basic-languages/${language}/${language}.ts`,
  183. amdModuleId: `vs/basic-languages/${language}/${language}`
  184. });
  185. }
  186. }
  187. });
  188. //#endregion