@modern-js/app-tools 2.0.0-beta.1 → 2.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/CHANGELOG.md +445 -0
  2. package/bin/modern.js +10 -1
  3. package/dist/js/modern/analyze/constants.js +2 -0
  4. package/dist/js/modern/analyze/generateCode.js +39 -19
  5. package/dist/js/modern/analyze/getBundleEntry.js +1 -1
  6. package/dist/js/modern/analyze/getFileSystemEntry.js +1 -1
  7. package/dist/js/modern/analyze/getHtmlTemplate.js +1 -1
  8. package/dist/js/modern/analyze/getServerRoutes.js +8 -4
  9. package/dist/js/modern/analyze/index.js +12 -27
  10. package/dist/js/modern/analyze/nestedRoutes.js +17 -6
  11. package/dist/js/modern/analyze/templates.js +59 -27
  12. package/dist/js/modern/analyze/utils.js +30 -4
  13. package/dist/js/modern/builder/builderPlugins/compatModern.js +18 -12
  14. package/dist/js/modern/builder/index.js +31 -16
  15. package/dist/js/modern/builder/loaders/routerLoader.js +20 -0
  16. package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -0
  17. package/dist/js/modern/builder/share.js +1 -1
  18. package/dist/js/modern/commands/build.js +8 -2
  19. package/dist/js/modern/commands/dev.js +37 -32
  20. package/dist/js/modern/commands/inspect.js +4 -2
  21. package/dist/js/modern/config/default.js +206 -0
  22. package/dist/js/modern/config/index.js +2 -0
  23. package/dist/js/modern/config/initial/createHtmlConfig.js +32 -0
  24. package/dist/js/modern/{builder → config/initial}/createOutputConfig.js +16 -15
  25. package/dist/js/modern/config/initial/createSourceConfig.js +32 -0
  26. package/dist/js/modern/config/initial/createToolsConfig.js +41 -0
  27. package/dist/js/modern/config/initial/index.js +11 -0
  28. package/dist/js/modern/config/initial/inits.js +117 -0
  29. package/dist/js/modern/config/initial/transformNormalizedConfig.js +40 -0
  30. package/dist/js/modern/defineConfig.js +12 -0
  31. package/dist/js/modern/hooks.js +23 -19
  32. package/dist/js/modern/index.js +7 -5
  33. package/dist/js/modern/initialize/index.js +72 -0
  34. package/dist/js/modern/schema/Schema.js +39 -0
  35. package/dist/js/modern/schema/index.js +139 -0
  36. package/dist/js/modern/schema/legacy.js +284 -0
  37. package/dist/js/modern/types/config/deploy.js +0 -0
  38. package/dist/js/modern/types/config/dev.js +0 -0
  39. package/dist/js/modern/types/config/experiments.js +0 -0
  40. package/dist/js/modern/types/config/html.js +0 -0
  41. package/dist/js/modern/types/config/index.js +2 -0
  42. package/dist/js/modern/types/config/output.js +0 -0
  43. package/dist/js/modern/types/config/performance.js +0 -0
  44. package/dist/js/modern/types/config/security.js +0 -0
  45. package/dist/js/modern/types/config/source.js +0 -0
  46. package/dist/js/modern/types/config/tools.js +0 -0
  47. package/dist/js/modern/types/hooks.js +0 -0
  48. package/dist/js/modern/types/index.js +4 -0
  49. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  50. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  51. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  52. package/dist/js/modern/types/legacyConfig/output.js +1 -0
  53. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  54. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  55. package/dist/js/modern/utils/config.js +1 -1
  56. package/dist/js/modern/utils/createFileWatcher.js +82 -0
  57. package/dist/js/modern/utils/restart.js +17 -0
  58. package/dist/js/node/analyze/constants.js +5 -1
  59. package/dist/js/node/analyze/generateCode.js +37 -17
  60. package/dist/js/node/analyze/getBundleEntry.js +1 -1
  61. package/dist/js/node/analyze/getFileSystemEntry.js +1 -1
  62. package/dist/js/node/analyze/getHtmlTemplate.js +1 -1
  63. package/dist/js/node/analyze/getServerRoutes.js +8 -4
  64. package/dist/js/node/analyze/index.js +13 -39
  65. package/dist/js/node/analyze/nestedRoutes.js +15 -4
  66. package/dist/js/node/analyze/templates.js +60 -27
  67. package/dist/js/node/analyze/utils.js +31 -3
  68. package/dist/js/node/builder/builderPlugins/compatModern.js +18 -12
  69. package/dist/js/node/builder/index.js +32 -16
  70. package/dist/js/node/builder/loaders/routerLoader.js +27 -0
  71. package/dist/js/node/builder/loaders/serverModuleLoader.js +11 -0
  72. package/dist/js/node/builder/share.js +1 -1
  73. package/dist/js/node/commands/build.js +8 -2
  74. package/dist/js/node/commands/dev.js +37 -32
  75. package/dist/js/node/commands/inspect.js +4 -2
  76. package/dist/js/node/config/default.js +213 -0
  77. package/dist/js/node/config/index.js +31 -0
  78. package/dist/js/node/config/initial/createHtmlConfig.js +38 -0
  79. package/dist/js/node/{builder → config/initial}/createOutputConfig.js +16 -15
  80. package/dist/js/node/config/initial/createSourceConfig.js +38 -0
  81. package/dist/js/node/config/initial/createToolsConfig.js +47 -0
  82. package/dist/js/node/config/initial/index.js +24 -0
  83. package/dist/js/node/config/initial/inits.js +127 -0
  84. package/dist/js/node/config/initial/transformNormalizedConfig.js +46 -0
  85. package/dist/js/node/defineConfig.js +20 -0
  86. package/dist/js/node/hooks.js +23 -28
  87. package/dist/js/node/index.js +30 -16
  88. package/dist/js/node/initialize/index.js +79 -0
  89. package/dist/js/node/schema/Schema.js +46 -0
  90. package/dist/js/node/schema/index.js +152 -0
  91. package/dist/js/node/schema/legacy.js +291 -0
  92. package/dist/js/node/types/config/deploy.js +0 -0
  93. package/dist/js/node/types/config/dev.js +0 -0
  94. package/dist/js/node/types/config/experiments.js +0 -0
  95. package/dist/js/node/types/config/html.js +0 -0
  96. package/dist/js/node/types/config/index.js +16 -0
  97. package/dist/js/node/types/config/output.js +0 -0
  98. package/dist/js/node/types/config/performance.js +0 -0
  99. package/dist/js/node/types/config/security.js +0 -0
  100. package/dist/js/node/types/config/source.js +0 -0
  101. package/dist/js/node/types/config/tools.js +0 -0
  102. package/dist/js/node/types/hooks.js +0 -0
  103. package/dist/js/node/types/index.js +38 -0
  104. package/dist/js/node/types/legacyConfig/deploy.js +0 -0
  105. package/dist/js/node/types/legacyConfig/dev.js +0 -0
  106. package/dist/js/node/types/legacyConfig/index.js +0 -0
  107. package/dist/js/node/types/legacyConfig/output.js +5 -0
  108. package/dist/js/node/types/legacyConfig/source.js +0 -0
  109. package/dist/js/node/types/legacyConfig/tools.js +0 -0
  110. package/dist/js/node/utils/config.js +1 -1
  111. package/dist/js/node/utils/createFileWatcher.js +91 -0
  112. package/dist/js/node/utils/restart.js +23 -0
  113. package/dist/js/treeshaking/analyze/constants.js +2 -0
  114. package/dist/js/treeshaking/analyze/generateCode.js +138 -82
  115. package/dist/js/treeshaking/analyze/getBundleEntry.js +1 -1
  116. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +1 -1
  117. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +1 -1
  118. package/dist/js/treeshaking/analyze/getServerRoutes.js +7 -5
  119. package/dist/js/treeshaking/analyze/index.js +10 -26
  120. package/dist/js/treeshaking/analyze/nestedRoutes.js +98 -55
  121. package/dist/js/treeshaking/analyze/templates.js +175 -101
  122. package/dist/js/treeshaking/analyze/utils.js +80 -4
  123. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +18 -12
  124. package/dist/js/treeshaking/builder/index.js +29 -16
  125. package/dist/js/treeshaking/builder/loaders/routerLoader.js +14 -0
  126. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +4 -0
  127. package/dist/js/treeshaking/builder/share.js +1 -1
  128. package/dist/js/treeshaking/commands/build.js +33 -23
  129. package/dist/js/treeshaking/commands/dev.js +56 -43
  130. package/dist/js/treeshaking/commands/inspect.js +8 -3
  131. package/dist/js/treeshaking/config/default.js +199 -0
  132. package/dist/js/treeshaking/config/index.js +2 -0
  133. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +31 -0
  134. package/dist/js/treeshaking/config/initial/createOutputConfig.js +70 -0
  135. package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -0
  136. package/dist/js/treeshaking/config/initial/createToolsConfig.js +38 -0
  137. package/dist/js/treeshaking/config/initial/index.js +11 -0
  138. package/dist/js/treeshaking/config/initial/inits.js +114 -0
  139. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +38 -0
  140. package/dist/js/treeshaking/defineConfig.js +14 -0
  141. package/dist/js/treeshaking/hooks.js +23 -19
  142. package/dist/js/treeshaking/index.js +7 -5
  143. package/dist/js/treeshaking/initialize/index.js +121 -0
  144. package/dist/js/treeshaking/schema/Schema.js +75 -0
  145. package/dist/js/treeshaking/schema/index.js +138 -0
  146. package/dist/js/treeshaking/schema/legacy.js +273 -0
  147. package/dist/js/treeshaking/types/config/deploy.js +0 -0
  148. package/dist/js/treeshaking/types/config/dev.js +0 -0
  149. package/dist/js/treeshaking/types/config/experiments.js +0 -0
  150. package/dist/js/treeshaking/types/config/html.js +0 -0
  151. package/dist/js/treeshaking/types/config/index.js +2 -0
  152. package/dist/js/treeshaking/types/config/output.js +0 -0
  153. package/dist/js/treeshaking/types/config/performance.js +0 -0
  154. package/dist/js/treeshaking/types/config/security.js +0 -0
  155. package/dist/js/treeshaking/types/config/source.js +0 -0
  156. package/dist/js/treeshaking/types/config/tools.js +0 -0
  157. package/dist/js/treeshaking/types/hooks.js +0 -0
  158. package/dist/js/treeshaking/types/index.js +4 -0
  159. package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -0
  160. package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -0
  161. package/dist/js/treeshaking/types/legacyConfig/index.js +0 -0
  162. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
  163. package/dist/js/treeshaking/types/legacyConfig/source.js +0 -0
  164. package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -0
  165. package/dist/js/treeshaking/utils/config.js +1 -1
  166. package/dist/js/treeshaking/utils/createFileWatcher.js +123 -0
  167. package/dist/js/treeshaking/utils/restart.js +45 -0
  168. package/dist/types/analyze/constants.d.ts +2 -0
  169. package/dist/types/analyze/generateCode.d.ts +3 -2
  170. package/dist/types/analyze/getBundleEntry.d.ts +2 -2
  171. package/dist/types/analyze/getFileSystemEntry.d.ts +2 -2
  172. package/dist/types/analyze/getHtmlTemplate.d.ts +3 -3
  173. package/dist/types/analyze/getServerRoutes.d.ts +3 -2
  174. package/dist/types/analyze/index.d.ts +3 -41
  175. package/dist/types/analyze/templates.d.ts +9 -8
  176. package/dist/types/analyze/utils.d.ts +10 -2
  177. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -2
  178. package/dist/types/builder/index.d.ts +5 -2
  179. package/dist/types/builder/loaders/routerLoader.d.ts +3 -0
  180. package/dist/types/builder/loaders/serverModuleLoader.d.ts +3 -0
  181. package/dist/types/builder/share.d.ts +2 -2
  182. package/dist/types/commands/build.d.ts +2 -2
  183. package/dist/types/commands/deploy.d.ts +2 -2
  184. package/dist/types/commands/dev.d.ts +2 -2
  185. package/dist/types/commands/inspect.d.ts +9 -1
  186. package/dist/types/commands/start.d.ts +2 -2
  187. package/dist/types/config/default.d.ts +3 -0
  188. package/dist/types/config/index.d.ts +2 -0
  189. package/dist/types/config/initial/createHtmlConfig.d.ts +2 -0
  190. package/dist/types/config/initial/createOutputConfig.d.ts +2 -0
  191. package/dist/types/config/initial/createSourceConfig.d.ts +2 -0
  192. package/dist/types/config/initial/createToolsConfig.d.ts +2 -0
  193. package/dist/types/config/initial/index.d.ts +4 -0
  194. package/dist/types/config/initial/inits.d.ts +4 -0
  195. package/dist/types/config/initial/transformNormalizedConfig.d.ts +2 -0
  196. package/dist/types/defineConfig.d.ts +7 -0
  197. package/dist/types/hooks.d.ts +2 -42
  198. package/dist/types/index.d.ts +5 -5
  199. package/dist/types/initialize/index.d.ts +3 -0
  200. package/dist/types/schema/Schema.d.ts +14 -0
  201. package/dist/types/schema/index.d.ts +4 -0
  202. package/dist/types/schema/legacy.d.ts +3 -0
  203. package/dist/types/types/config/deploy.d.ts +9 -0
  204. package/dist/types/types/config/dev.d.ts +13 -0
  205. package/dist/types/types/config/experiments.d.ts +4 -0
  206. package/dist/types/types/config/html.d.ts +4 -0
  207. package/dist/types/types/config/index.d.ts +62 -0
  208. package/dist/types/types/config/output.d.ts +23 -0
  209. package/dist/types/types/config/performance.d.ts +4 -0
  210. package/dist/types/types/config/security.d.ts +4 -0
  211. package/dist/types/types/config/source.d.ts +22 -0
  212. package/dist/types/types/config/tools.d.ts +22 -0
  213. package/dist/types/types/hooks.d.ts +81 -0
  214. package/dist/types/types/index.d.ts +23 -0
  215. package/dist/types/types/legacyConfig/deploy.d.ts +8 -0
  216. package/dist/types/types/legacyConfig/dev.d.ts +12 -0
  217. package/dist/types/types/legacyConfig/index.d.ts +33 -0
  218. package/dist/types/types/legacyConfig/output.d.ts +51 -0
  219. package/dist/types/types/legacyConfig/source.d.ts +25 -0
  220. package/dist/types/types/legacyConfig/tools.d.ts +16 -0
  221. package/dist/types/utils/config.d.ts +2 -2
  222. package/dist/types/utils/createFileWatcher.d.ts +4 -0
  223. package/dist/types/utils/printInstructions.d.ts +3 -3
  224. package/dist/types/utils/restart.d.ts +3 -0
  225. package/lib/types.d.ts +1 -1
  226. package/package.json +28 -25
  227. package/dist/js/modern/builder/createHtmlConfig.js +0 -58
  228. package/dist/js/modern/builder/createSourceConfig.js +0 -74
  229. package/dist/js/modern/builder/createToolsConfig.js +0 -87
  230. package/dist/js/node/builder/createHtmlConfig.js +0 -68
  231. package/dist/js/node/builder/createSourceConfig.js +0 -82
  232. package/dist/js/node/builder/createToolsConfig.js +0 -94
  233. package/dist/js/treeshaking/builder/createHtmlConfig.js +0 -59
  234. package/dist/js/treeshaking/builder/createOutputConfig.js +0 -70
  235. package/dist/js/treeshaking/builder/createSourceConfig.js +0 -88
  236. package/dist/js/treeshaking/builder/createToolsConfig.js +0 -85
  237. package/dist/types/builder/createHtmlConfig.d.ts +0 -6
  238. package/dist/types/builder/createOutputConfig.d.ts +0 -3
  239. package/dist/types/builder/createSourceConfig.d.ts +0 -5
  240. package/dist/types/builder/createToolsConfig.d.ts +0 -13
@@ -0,0 +1,291 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _constants = require("@modern-js/utils/constants");
8
+ var _Schema = require("./Schema");
9
+ const source = {
10
+ entries: {
11
+ type: 'object',
12
+ patternProperties: {
13
+ [_constants.ENTRY_NAME_PATTERN]: {
14
+ if: {
15
+ type: 'object'
16
+ },
17
+ then: {
18
+ required: ['entry'],
19
+ properties: {
20
+ entry: {
21
+ type: ['string', 'array']
22
+ },
23
+ disableMount: {
24
+ type: 'boolean'
25
+ },
26
+ enableFileSystemRoutes: {
27
+ type: 'boolean'
28
+ }
29
+ },
30
+ additionalProperties: false
31
+ },
32
+ else: {
33
+ type: ['string', 'array']
34
+ }
35
+ }
36
+ }
37
+ },
38
+ preEntry: {
39
+ type: ['string', 'array']
40
+ },
41
+ alias: {
42
+ typeof: ['object', 'function']
43
+ },
44
+ enableAsyncEntry: {
45
+ type: 'boolean'
46
+ },
47
+ disableDefaultEntries: {
48
+ type: 'boolean'
49
+ },
50
+ envVars: {
51
+ type: 'array'
52
+ },
53
+ globalVars: {
54
+ type: 'object'
55
+ },
56
+ moduleScopes: {
57
+ instanceof: ['Array', 'Function']
58
+ },
59
+ entriesDir: {
60
+ type: 'string'
61
+ },
62
+ configDir: {
63
+ type: 'string'
64
+ },
65
+ include: {
66
+ type: ['array']
67
+ }
68
+ };
69
+ const output = {
70
+ assetPrefix: {
71
+ type: 'string'
72
+ },
73
+ path: {
74
+ type: 'string'
75
+ },
76
+ jsPath: {
77
+ type: 'string'
78
+ },
79
+ cssPath: {
80
+ type: 'string'
81
+ },
82
+ htmlPath: {
83
+ type: 'string'
84
+ },
85
+ mediaPath: {
86
+ type: 'string'
87
+ },
88
+ mountId: {
89
+ type: 'string'
90
+ },
91
+ favicon: {
92
+ type: 'string'
93
+ },
94
+ faviconByEntries: {
95
+ type: 'object',
96
+ patternProperties: {
97
+ [_constants.ENTRY_NAME_PATTERN]: {
98
+ type: 'string'
99
+ }
100
+ }
101
+ },
102
+ title: {
103
+ type: 'string'
104
+ },
105
+ titleByEntries: {
106
+ type: 'object',
107
+ patternProperties: {
108
+ [_constants.ENTRY_NAME_PATTERN]: {
109
+ type: 'string'
110
+ }
111
+ }
112
+ },
113
+ meta: {
114
+ type: 'object'
115
+ },
116
+ metaByEntries: {
117
+ type: 'object',
118
+ patternProperties: {
119
+ [_constants.ENTRY_NAME_PATTERN]: {
120
+ type: 'object'
121
+ }
122
+ }
123
+ },
124
+ inject: {
125
+ enum: [true, 'head', 'body', false]
126
+ },
127
+ injectByEntries: {
128
+ type: 'object',
129
+ patternProperties: {
130
+ [_constants.ENTRY_NAME_PATTERN]: {
131
+ enum: [true, 'head', 'body', false]
132
+ }
133
+ }
134
+ },
135
+ copy: {
136
+ type: 'array'
137
+ },
138
+ scriptExt: {
139
+ type: 'object'
140
+ },
141
+ disableTsChecker: {
142
+ type: 'boolean'
143
+ },
144
+ disableHtmlFolder: {
145
+ type: 'boolean'
146
+ },
147
+ disableCssModuleExtension: {
148
+ type: 'boolean'
149
+ },
150
+ disableCssExtract: {
151
+ type: 'boolean'
152
+ },
153
+ enableCssModuleTSDeclaration: {
154
+ type: 'boolean'
155
+ },
156
+ disableMinimize: {
157
+ type: 'boolean'
158
+ },
159
+ enableInlineStyles: {
160
+ type: 'boolean'
161
+ },
162
+ enableInlineScripts: {
163
+ type: 'boolean'
164
+ },
165
+ disableSourceMap: {
166
+ type: 'boolean'
167
+ },
168
+ disableInlineRuntimeChunk: {
169
+ type: 'boolean'
170
+ },
171
+ disableAssetsCache: {
172
+ type: 'boolean'
173
+ },
174
+ enableLatestDecorators: {
175
+ type: 'boolean'
176
+ },
177
+ enableTsLoader: {
178
+ type: 'boolean'
179
+ },
180
+ dataUriLimit: {
181
+ type: 'number'
182
+ },
183
+ templateParameters: {
184
+ type: 'object'
185
+ },
186
+ templateParametersByEntries: {
187
+ type: 'object',
188
+ patternProperties: {
189
+ [_constants.ENTRY_NAME_PATTERN]: {
190
+ type: 'object'
191
+ }
192
+ }
193
+ },
194
+ polyfill: {
195
+ type: 'string',
196
+ enum: ['usage', 'entry', 'off', 'ua']
197
+ },
198
+ cssModuleLocalIdentName: {
199
+ type: 'string'
200
+ },
201
+ federation: {
202
+ type: 'object'
203
+ },
204
+ disableNodePolyfill: {
205
+ type: 'boolean'
206
+ },
207
+ enableModernMode: {
208
+ type: 'boolean'
209
+ }
210
+ };
211
+ const server = {
212
+ routes: {
213
+ type: 'object'
214
+ },
215
+ publicRoutes: {
216
+ type: 'object'
217
+ },
218
+ ssr: {
219
+ type: ['boolean', 'object']
220
+ },
221
+ ssrByEntries: {
222
+ type: 'object'
223
+ },
224
+ baseUrl: {
225
+ anyOf: [{
226
+ type: 'string'
227
+ }, {
228
+ type: 'array',
229
+ items: {
230
+ type: 'string'
231
+ }
232
+ }]
233
+ },
234
+ port: {
235
+ type: 'number'
236
+ },
237
+ logger: {
238
+ type: ['boolean', 'object']
239
+ },
240
+ metrics: {
241
+ type: ['boolean', 'object']
242
+ },
243
+ enableMicroFrontendDebug: {
244
+ type: 'boolean'
245
+ },
246
+ watchOptions: {
247
+ type: 'object'
248
+ },
249
+ compiler: {
250
+ type: 'string'
251
+ },
252
+ disableFrameworkExt: {
253
+ type: 'boolean'
254
+ }
255
+ };
256
+ const dev = {
257
+ proxy: {
258
+ type: ['boolean', 'object']
259
+ }
260
+ };
261
+ const deploy = {
262
+ microFrontend: {
263
+ type: ['boolean', 'object']
264
+ }
265
+ };
266
+ const tools = {
267
+ tailwindcss: {
268
+ type: 'object'
269
+ },
270
+ jest: {
271
+ typeof: ['object', 'function']
272
+ },
273
+ esbuild: {
274
+ typeof: ['object']
275
+ }
276
+ };
277
+ const bff = {
278
+ prefix: {
279
+ type: 'string'
280
+ },
281
+ proxy: {
282
+ type: 'object',
283
+ additionalProperties: {
284
+ type: 'string'
285
+ }
286
+ }
287
+ };
288
+ const schema = new _Schema.Schema();
289
+ schema.setSchema('bff', bff).setSchema('dev', dev).setSchema('server', server).setSchema('source', source).setSchema('output', output).setSchema('tools', tools).setSchema('deploy', deploy);
290
+ var _default = schema;
291
+ exports.default = _default;
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _output = require("./output");
7
+ Object.keys(_output).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _output[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _output[key];
14
+ }
15
+ });
16
+ });
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _hooks = require("./hooks");
7
+ Object.keys(_hooks).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _hooks[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _hooks[key];
14
+ }
15
+ });
16
+ });
17
+ var _config = require("./config");
18
+ Object.keys(_config).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _config[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _config[key];
25
+ }
26
+ });
27
+ });
28
+ var _legacyConfig = require("./legacyConfig");
29
+ Object.keys(_legacyConfig).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _legacyConfig[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _legacyConfig[key];
36
+ }
37
+ });
38
+ });
File without changes
File without changes
File without changes
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
File without changes
File without changes
@@ -70,7 +70,7 @@ const safeReplacer = () => {
70
70
  exports.safeReplacer = safeReplacer;
71
71
  const emitResolvedConfig = async (appDirectory, resolvedConfig) => {
72
72
  var _resolvedConfig$outpu;
73
- const outputPath = path.join(appDirectory, (resolvedConfig === null || resolvedConfig === void 0 ? void 0 : (_resolvedConfig$outpu = resolvedConfig.output) === null || _resolvedConfig$outpu === void 0 ? void 0 : _resolvedConfig$outpu.path) || './dist', _utils.OUTPUT_CONFIG_FILE);
73
+ const outputPath = path.join(appDirectory, ((_resolvedConfig$outpu = resolvedConfig.output.distPath) === null || _resolvedConfig$outpu === void 0 ? void 0 : _resolvedConfig$outpu.root) || './dist', _utils.OUTPUT_CONFIG_FILE);
74
74
  await _utils.fs.writeJSON(outputPath, resolvedConfig, {
75
75
  spaces: 2,
76
76
  replacer: safeReplacer()
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFileWatcher = exports.addServerConfigToDeps = void 0;
7
+ var _crypto = _interopRequireDefault(require("crypto"));
8
+ var _fs = _interopRequireDefault(require("fs"));
9
+ var _path = _interopRequireDefault(require("path"));
10
+ var _utils = require("@modern-js/utils");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ /**
13
+ * Get user config from package.json.
14
+ * @param appDirectory - App root directory.
15
+ * @returns modernConfig or undefined
16
+ */
17
+ // FIXME: read package.json again;
18
+ const getPackageConfig = (appDirectory, packageJsonConfig) => {
19
+ const PACKAGE_JSON_CONFIG_NAME = 'modernConfig';
20
+ const json = JSON.parse(_fs.default.readFileSync(_path.default.resolve(appDirectory, './package.json'), 'utf8'));
21
+ return json[packageJsonConfig !== null && packageJsonConfig !== void 0 ? packageJsonConfig : PACKAGE_JSON_CONFIG_NAME];
22
+ };
23
+ const addServerConfigToDeps = async (dependencies, appDirectory, serverConfigFile) => {
24
+ const serverConfig = await (0, _utils.getServerConfig)(appDirectory, serverConfigFile);
25
+ if (serverConfig) {
26
+ dependencies.push(serverConfig);
27
+ }
28
+ };
29
+ exports.addServerConfigToDeps = addServerConfigToDeps;
30
+ const debug = (0, _utils.createDebugger)('watch-files');
31
+ const md5 = data => _crypto.default.createHash('md5').update(data).digest('hex');
32
+ const hashMap = new Map();
33
+ const createFileWatcher = async (appContext, configDir, hooksRunner) => {
34
+ // only add fs watcher on dev mode.
35
+ if ((0, _utils.isDev)() || (0, _utils.isTest)()) {
36
+ const {
37
+ appDirectory,
38
+ configFile
39
+ } = appContext;
40
+ const extraFiles = await hooksRunner.watchFiles();
41
+ const configPath = _path.default.join(appDirectory, configDir);
42
+ const dependencies = getPackageConfig(appContext.appDirectory, appContext.packageName) ? [_path.default.resolve(appDirectory, './package.json')] : [];
43
+
44
+ // 将 server.config 加入到 loaded.dependencies,以便对文件监听做热更新
45
+ await addServerConfigToDeps(dependencies, appContext.appDirectory, appContext.serverConfigFile);
46
+ const watched = [`${configPath}/html`, ...extraFiles, ...dependencies, configFile].filter(Boolean);
47
+ debug(`watched: %o`, watched);
48
+ const watcher = _utils.chokidar.watch(watched, {
49
+ cwd: appDirectory,
50
+ ignoreInitial: true,
51
+ ignorePermissionErrors: true,
52
+ ignored: [/node_modules/, '**/__test__/**', '**/*.test.(js|jsx|ts|tsx)', '**/*.spec.(js|jsx|ts|tsx)', '**/*.stories.(js|jsx|ts|tsx)']
53
+ });
54
+ watcher.on('change', changed => {
55
+ const lastHash = hashMap.get(changed);
56
+ const currentHash = md5(_fs.default.readFileSync(_path.default.join(appDirectory, changed), 'utf8'));
57
+ if (currentHash !== lastHash) {
58
+ debug(`file change: %s`, changed);
59
+ hashMap.set(changed, currentHash);
60
+ hooksRunner.fileChange({
61
+ filename: changed,
62
+ eventType: 'change'
63
+ });
64
+ }
65
+ });
66
+ watcher.on('add', name => {
67
+ debug(`add file: %s`, name);
68
+ const currentHash = md5(_fs.default.readFileSync(_path.default.join(appDirectory, name), 'utf8'));
69
+ hashMap.set(name, currentHash);
70
+ hooksRunner.fileChange({
71
+ filename: name,
72
+ eventType: 'add'
73
+ });
74
+ });
75
+ watcher.on('unlink', name => {
76
+ debug(`remove file: %s`, name);
77
+ if (hashMap.has(name)) {
78
+ hashMap.delete(name);
79
+ }
80
+ hooksRunner.fileChange({
81
+ filename: name,
82
+ eventType: 'unlink'
83
+ });
84
+ });
85
+ watcher.on('error', err => {
86
+ throw err;
87
+ });
88
+ return watcher;
89
+ }
90
+ };
91
+ exports.createFileWatcher = createFileWatcher;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.restart = restart;
7
+ var _core = require("@modern-js/core");
8
+ var _utils = require("@modern-js/utils");
9
+ async function restart(hooksRunner) {
10
+ _utils.logger.info('Restart...\n');
11
+ let hasGetError = false;
12
+ await hooksRunner.beforeRestart();
13
+ try {
14
+ await _core.cli.init(_core.cli.getPrevInitOptions());
15
+ } catch (err) {
16
+ console.error(err);
17
+ hasGetError = true;
18
+ } finally {
19
+ if (!hasGetError) {
20
+ _utils.program.parse(process.argv);
21
+ }
22
+ }
23
+ }
@@ -4,6 +4,8 @@ export var APP_FILE_NAME = 'App';
4
4
  export var PAGES_DIR_NAME = 'pages';
5
5
  export var NESTED_ROUTES_DIR = 'routes';
6
6
  export var FILE_SYSTEM_ROUTES_FILE_NAME = 'routes.js';
7
+ export var LOADER_EXPORT_NAME = 'loader';
8
+ export var TEMP_LOADERS_DIR = '__loaders__';
7
9
  export var ENTRY_POINT_FILE_NAME = 'index.js';
8
10
  export var ENTRY_BOOTSTRAP_FILE_NAME = 'bootstrap.js';
9
11
  export var FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP = /^\[(\S+)\]([*+?]?)$/;