build-languages.ts 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  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. copyFile(
  118. `src/language/typescript/lib/typescriptServices-amd.js`,
  119. `out/languages/amd-tsc/language/typescript/lib/typescriptServices.js`
  120. );
  121. buildESM({
  122. base: 'language/typescript',
  123. entryPoints: [
  124. 'src/language/typescript/monaco.contribution.ts',
  125. 'src/language/typescript/tsMode.ts',
  126. 'src/language/typescript/ts.worker.ts'
  127. ],
  128. external: ['monaco-editor-core', '*/tsMode', '*/monaco.contribution']
  129. });
  130. buildAMD({
  131. base: 'language/typescript',
  132. entryPoint: 'src/language/typescript/monaco.contribution.ts',
  133. amdModuleId: 'vs/language/typescript/monaco.contribution',
  134. amdDependencies: ['vs/editor/editor.api']
  135. });
  136. buildAMD({
  137. base: 'language/typescript',
  138. entryPoint: 'src/language/typescript/tsMode.ts',
  139. amdModuleId: 'vs/language/typescript/tsMode',
  140. external: ['*/monaco.contribution']
  141. });
  142. buildAMD({
  143. base: 'language/typescript',
  144. entryPoint: 'src/language/typescript/tsWorker.ts',
  145. amdModuleId: 'vs/language/typescript/tsWorker'
  146. });
  147. //#endregion
  148. //#region basic-languages
  149. glob('../src/basic-languages/*/*.contribution.ts', { cwd: __dirname }, function (err, files) {
  150. if (err) {
  151. console.error(err);
  152. return;
  153. }
  154. const languages = files.map((file) => file.split('/')[3]);
  155. // ESM
  156. {
  157. /** @type {string[]} */
  158. const entryPoints = [
  159. 'src/basic-languages/monaco.contribution.ts',
  160. 'src/basic-languages/_.contribution.ts'
  161. ];
  162. const external = ['monaco-editor-core', '*/_.contribution'];
  163. for (const language of languages) {
  164. entryPoints.push(`src/basic-languages/${language}/${language}.contribution.ts`);
  165. entryPoints.push(`src/basic-languages/${language}/${language}.ts`);
  166. external.push(`*/${language}.contribution`);
  167. external.push(`*/${language}`);
  168. }
  169. buildESM({
  170. base: 'basic-languages',
  171. entryPoints,
  172. external
  173. });
  174. }
  175. // AMD
  176. {
  177. buildAMD({
  178. base: 'basic-languages',
  179. entryPoint: 'src/basic-languages/monaco.contribution.ts',
  180. amdModuleId: 'vs/basic-languages/monaco.contribution',
  181. amdDependencies: ['vs/editor/editor.api']
  182. });
  183. for (const language of languages) {
  184. buildAMD({
  185. base: 'basic-languages',
  186. entryPoint: `src/basic-languages/${language}/${language}.ts`,
  187. amdModuleId: `vs/basic-languages/${language}/${language}`
  188. });
  189. }
  190. }
  191. });
  192. //#endregion