@modern-js/app-tools 1.22.2 → 2.0.0-alpha.0

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 (325) hide show
  1. package/CHANGELOG.md +1383 -104
  2. package/bin/modern.js +13 -1
  3. package/dist/js/modern/analyze/Builder.js +39 -0
  4. package/dist/js/modern/analyze/constants.js +48 -15
  5. package/dist/js/modern/analyze/generateCode.js +286 -133
  6. package/dist/js/modern/analyze/getBundleEntry.js +39 -41
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +220 -0
  8. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +216 -0
  9. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -0
  10. package/dist/js/modern/analyze/getClientRoutes/utils.js +31 -0
  11. package/dist/js/modern/analyze/getFileSystemEntry.js +74 -39
  12. package/dist/js/modern/analyze/getHtmlTemplate.js +90 -57
  13. package/dist/js/modern/analyze/getServerRoutes.js +123 -140
  14. package/dist/js/modern/analyze/index.js +220 -133
  15. package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -20
  16. package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -13
  17. package/dist/js/modern/analyze/nestedRoutes.js +166 -0
  18. package/dist/js/modern/analyze/templates.js +289 -29
  19. package/dist/js/modern/analyze/utils.js +128 -58
  20. package/dist/js/modern/builder/builderPlugins/compatModern.js +233 -0
  21. package/dist/js/modern/builder/index.js +154 -0
  22. package/dist/js/modern/builder/loaders/routerLoader.js +17 -0
  23. package/dist/js/modern/builder/loaders/serverModuleLoader.js +7 -0
  24. package/dist/js/modern/builder/share.js +46 -0
  25. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +30 -0
  26. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +37 -0
  27. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +113 -0
  28. package/dist/js/modern/commands/build.js +75 -138
  29. package/dist/js/modern/commands/deploy.js +27 -4
  30. package/dist/js/modern/commands/dev.js +102 -66
  31. package/dist/js/modern/commands/index.js +1 -1
  32. package/dist/js/modern/commands/inspect.js +33 -64
  33. package/dist/js/modern/commands/serve.js +54 -0
  34. package/dist/js/modern/config/default.js +173 -0
  35. package/dist/js/modern/config/index.js +8 -0
  36. package/dist/js/modern/config/initial/createHtmlConfig.js +35 -0
  37. package/dist/js/modern/config/initial/createOutputConfig.js +68 -0
  38. package/dist/js/modern/config/initial/createSourceConfig.js +39 -0
  39. package/dist/js/modern/config/initial/createToolsConfig.js +42 -0
  40. package/dist/js/modern/config/initial/index.js +16 -0
  41. package/dist/js/modern/config/initial/inits.js +153 -0
  42. package/dist/js/modern/config/initial/transformNormalizedConfig.js +47 -0
  43. package/dist/js/modern/defineConfig.js +27 -0
  44. package/dist/js/modern/exports/server.js +4 -1
  45. package/dist/js/modern/hooks.js +37 -21
  46. package/dist/js/modern/index.js +185 -94
  47. package/dist/js/modern/initialize/index.js +120 -0
  48. package/dist/js/modern/locale/en.js +20 -22
  49. package/dist/js/modern/locale/index.js +6 -6
  50. package/dist/js/modern/locale/zh.js +21 -23
  51. package/dist/js/modern/schema/Schema.js +40 -0
  52. package/dist/js/modern/schema/index.js +88 -0
  53. package/dist/js/modern/schema/legacy.js +148 -0
  54. package/dist/js/modern/types/config/deploy.js +0 -0
  55. package/dist/js/modern/types/config/dev.js +0 -0
  56. package/dist/js/modern/types/config/experiments.js +0 -0
  57. package/dist/js/modern/types/config/html.js +0 -0
  58. package/dist/js/modern/types/config/index.js +1 -0
  59. package/dist/js/modern/types/config/output.js +0 -0
  60. package/dist/js/modern/types/config/performance.js +0 -0
  61. package/dist/js/modern/types/config/security.js +0 -0
  62. package/dist/js/modern/types/config/source.js +0 -0
  63. package/dist/js/modern/types/config/tools.js +0 -0
  64. package/dist/js/modern/types/hooks.js +0 -0
  65. package/dist/js/modern/types/index.js +3 -0
  66. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  67. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  68. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  69. package/dist/js/modern/types/legacyConfig/output.js +0 -0
  70. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  71. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  72. package/dist/js/modern/utils/commands.js +13 -0
  73. package/dist/js/modern/utils/config.js +102 -52
  74. package/dist/js/modern/utils/createFileWatcher.js +115 -0
  75. package/dist/js/modern/utils/createServer.js +67 -10
  76. package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
  77. package/dist/js/modern/utils/getSpecifiedEntries.js +46 -25
  78. package/dist/js/modern/utils/language.js +6 -3
  79. package/dist/js/modern/utils/printInstructions.js +29 -9
  80. package/dist/js/modern/utils/restart.js +44 -0
  81. package/dist/js/modern/utils/routes.js +29 -14
  82. package/dist/js/node/analyze/Builder.js +64 -0
  83. package/dist/js/node/analyze/constants.js +86 -33
  84. package/dist/js/node/analyze/generateCode.js +305 -163
  85. package/dist/js/node/analyze/getBundleEntry.js +66 -58
  86. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +242 -0
  87. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +238 -0
  88. package/dist/js/node/analyze/getClientRoutes/index.js +30 -0
  89. package/dist/js/node/analyze/getClientRoutes/utils.js +58 -0
  90. package/dist/js/node/analyze/getFileSystemEntry.js +99 -58
  91. package/dist/js/node/analyze/getHtmlTemplate.js +121 -83
  92. package/dist/js/node/analyze/getServerRoutes.js +146 -160
  93. package/dist/js/node/analyze/index.js +243 -161
  94. package/dist/js/node/analyze/isDefaultExportFunction.js +59 -38
  95. package/dist/js/node/analyze/makeLegalIdentifier.js +31 -19
  96. package/dist/js/node/analyze/nestedRoutes.js +193 -0
  97. package/dist/js/node/analyze/templates.js +316 -43
  98. package/dist/js/node/analyze/utils.js +158 -78
  99. package/dist/js/node/builder/builderPlugins/compatModern.js +258 -0
  100. package/dist/js/node/builder/index.js +177 -0
  101. package/dist/js/node/builder/loaders/routerLoader.js +38 -0
  102. package/dist/js/node/builder/loaders/serverModuleLoader.js +28 -0
  103. package/dist/js/node/builder/share.js +75 -0
  104. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +53 -0
  105. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +60 -0
  106. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +135 -0
  107. package/dist/js/node/commands/build.js +97 -159
  108. package/dist/js/node/commands/deploy.js +49 -12
  109. package/dist/js/node/commands/dev.js +121 -93
  110. package/dist/js/node/commands/index.js +19 -44
  111. package/dist/js/node/commands/inspect.js +56 -93
  112. package/dist/js/node/commands/serve.js +83 -0
  113. package/dist/js/node/config/default.js +195 -0
  114. package/dist/js/node/config/index.js +34 -0
  115. package/dist/js/node/config/initial/createHtmlConfig.js +58 -0
  116. package/dist/js/node/config/initial/createOutputConfig.js +91 -0
  117. package/dist/js/node/config/initial/createSourceConfig.js +62 -0
  118. package/dist/js/node/config/initial/createToolsConfig.js +65 -0
  119. package/dist/js/node/config/initial/index.js +41 -0
  120. package/dist/js/node/config/initial/inits.js +176 -0
  121. package/dist/js/node/config/initial/transformNormalizedConfig.js +70 -0
  122. package/dist/js/node/defineConfig.js +49 -0
  123. package/dist/js/node/exports/server.js +25 -11
  124. package/dist/js/node/hooks.js +53 -36
  125. package/dist/js/node/index.js +216 -128
  126. package/dist/js/node/initialize/index.js +135 -0
  127. package/dist/js/node/locale/en.js +40 -26
  128. package/dist/js/node/locale/index.js +31 -18
  129. package/dist/js/node/locale/zh.js +41 -27
  130. package/dist/js/node/schema/Schema.js +63 -0
  131. package/dist/js/node/schema/index.js +118 -0
  132. package/dist/js/node/schema/legacy.js +169 -0
  133. package/dist/js/node/types/config/deploy.js +15 -0
  134. package/dist/js/node/types/config/dev.js +15 -0
  135. package/dist/js/node/types/config/experiments.js +15 -0
  136. package/dist/js/node/types/config/html.js +15 -0
  137. package/dist/js/node/types/config/index.js +17 -0
  138. package/dist/js/node/types/config/output.js +15 -0
  139. package/dist/js/node/types/config/performance.js +15 -0
  140. package/dist/js/node/types/config/security.js +15 -0
  141. package/dist/js/node/types/config/source.js +15 -0
  142. package/dist/js/node/types/config/tools.js +15 -0
  143. package/dist/js/node/types/hooks.js +15 -0
  144. package/dist/js/node/types/index.js +19 -0
  145. package/dist/js/node/types/legacyConfig/deploy.js +15 -0
  146. package/dist/js/node/types/legacyConfig/dev.js +15 -0
  147. package/dist/js/node/types/legacyConfig/index.js +15 -0
  148. package/dist/js/node/types/legacyConfig/output.js +15 -0
  149. package/dist/js/node/types/legacyConfig/source.js +15 -0
  150. package/dist/js/node/types/legacyConfig/tools.js +15 -0
  151. package/dist/js/node/utils/commands.js +37 -0
  152. package/dist/js/node/utils/config.js +125 -75
  153. package/dist/js/node/utils/createFileWatcher.js +139 -0
  154. package/dist/js/node/utils/createServer.js +96 -25
  155. package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
  156. package/dist/js/node/utils/getSpecifiedEntries.js +68 -34
  157. package/dist/js/node/utils/language.js +28 -10
  158. package/dist/js/node/utils/printInstructions.js +51 -19
  159. package/dist/js/node/utils/restart.js +67 -0
  160. package/dist/js/node/utils/routes.js +58 -24
  161. package/dist/js/node/utils/types.js +15 -0
  162. package/dist/js/treeshaking/analyze/Builder.js +199 -0
  163. package/dist/js/treeshaking/analyze/constants.js +37 -0
  164. package/dist/js/treeshaking/analyze/generateCode.js +615 -0
  165. package/dist/js/treeshaking/analyze/getBundleEntry.js +64 -0
  166. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +233 -0
  167. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +231 -0
  168. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -0
  169. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +23 -0
  170. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +107 -0
  171. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +302 -0
  172. package/dist/js/treeshaking/analyze/getServerRoutes.js +222 -0
  173. package/dist/js/treeshaking/analyze/index.js +589 -0
  174. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +47 -0
  175. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -0
  176. package/dist/js/treeshaking/analyze/nestedRoutes.js +426 -0
  177. package/dist/js/treeshaking/analyze/templates.js +446 -0
  178. package/dist/js/treeshaking/analyze/utils.js +390 -0
  179. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +304 -0
  180. package/dist/js/treeshaking/builder/index.js +374 -0
  181. package/dist/js/treeshaking/builder/loaders/routerLoader.js +13 -0
  182. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +5 -0
  183. package/dist/js/treeshaking/builder/share.js +40 -0
  184. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +110 -0
  185. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +72 -0
  186. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +343 -0
  187. package/dist/js/treeshaking/commands/build.js +291 -0
  188. package/dist/js/treeshaking/commands/deploy.js +154 -0
  189. package/dist/js/treeshaking/commands/dev.js +319 -0
  190. package/dist/js/treeshaking/commands/index.js +3 -0
  191. package/dist/js/treeshaking/commands/inspect.js +149 -0
  192. package/dist/js/treeshaking/commands/serve.js +199 -0
  193. package/dist/js/treeshaking/config/default.js +208 -0
  194. package/dist/js/treeshaking/config/index.js +3 -0
  195. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -0
  196. package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -0
  197. package/dist/js/treeshaking/config/initial/createSourceConfig.js +42 -0
  198. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -0
  199. package/dist/js/treeshaking/config/initial/index.js +12 -0
  200. package/dist/js/treeshaking/config/initial/inits.js +213 -0
  201. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +35 -0
  202. package/dist/js/treeshaking/defineConfig.js +61 -0
  203. package/dist/js/treeshaking/exports/server.js +2 -0
  204. package/dist/js/treeshaking/hooks.js +31 -0
  205. package/dist/js/treeshaking/index.js +694 -0
  206. package/dist/js/treeshaking/initialize/index.js +300 -0
  207. package/dist/js/treeshaking/locale/en.js +35 -0
  208. package/dist/js/treeshaking/locale/index.js +9 -0
  209. package/dist/js/treeshaking/locale/zh.js +35 -0
  210. package/dist/js/treeshaking/schema/Schema.js +273 -0
  211. package/dist/js/treeshaking/schema/index.js +181 -0
  212. package/dist/js/treeshaking/schema/legacy.js +337 -0
  213. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  214. package/dist/js/treeshaking/types/config/dev.js +1 -0
  215. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  216. package/dist/js/treeshaking/types/config/html.js +1 -0
  217. package/dist/js/treeshaking/types/config/index.js +1 -0
  218. package/dist/js/treeshaking/types/config/output.js +1 -0
  219. package/dist/js/treeshaking/types/config/performance.js +1 -0
  220. package/dist/js/treeshaking/types/config/security.js +1 -0
  221. package/dist/js/treeshaking/types/config/source.js +1 -0
  222. package/dist/js/treeshaking/types/config/tools.js +1 -0
  223. package/dist/js/treeshaking/types/hooks.js +1 -0
  224. package/dist/js/treeshaking/types/index.js +3 -0
  225. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  226. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  227. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  228. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
  229. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  230. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  231. package/dist/js/treeshaking/utils/commands.js +10 -0
  232. package/dist/js/treeshaking/utils/config.js +302 -0
  233. package/dist/js/treeshaking/utils/createFileWatcher.js +283 -0
  234. package/dist/js/treeshaking/utils/createServer.js +258 -0
  235. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
  236. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +185 -0
  237. package/dist/js/treeshaking/utils/language.js +6 -0
  238. package/dist/js/treeshaking/utils/printInstructions.js +152 -0
  239. package/dist/js/treeshaking/utils/restart.js +187 -0
  240. package/dist/js/treeshaking/utils/routes.js +153 -0
  241. package/dist/js/treeshaking/utils/types.js +1 -0
  242. package/dist/types/analyze/Builder.d.ts +8 -0
  243. package/dist/types/analyze/constants.d.ts +13 -1
  244. package/dist/types/analyze/generateCode.d.ts +3 -2
  245. package/dist/types/analyze/getBundleEntry.d.ts +2 -2
  246. package/dist/types/analyze/{getClientRoutes.d.ts → getClientRoutes/getRoutes.d.ts} +2 -7
  247. package/dist/types/analyze/getClientRoutes/getRoutesLegacy.d.ts +15 -0
  248. package/dist/types/analyze/getClientRoutes/index.d.ts +2 -0
  249. package/dist/types/analyze/getClientRoutes/utils.d.ts +5 -0
  250. package/dist/types/analyze/getFileSystemEntry.d.ts +2 -2
  251. package/dist/types/analyze/getHtmlTemplate.d.ts +3 -3
  252. package/dist/types/analyze/getServerRoutes.d.ts +3 -2
  253. package/dist/types/analyze/index.d.ts +3 -40
  254. package/dist/types/analyze/nestedRoutes.d.ts +5 -0
  255. package/dist/types/analyze/templates.d.ts +24 -5
  256. package/dist/types/analyze/utils.d.ts +12 -2
  257. package/dist/types/builder/builderPlugins/compatModern.d.ts +14 -0
  258. package/dist/types/builder/index.d.ts +18 -0
  259. package/dist/types/builder/loaders/routerLoader.d.ts +3 -0
  260. package/dist/types/builder/loaders/serverModuleLoader.d.ts +3 -0
  261. package/dist/types/builder/share.d.ts +26 -0
  262. package/dist/types/builder/webpackPlugins/htmlAsyncChunkPlugin.d.ts +8 -0
  263. package/dist/types/builder/webpackPlugins/htmlBottomTemplate.d.ts +10 -0
  264. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +4 -0
  265. package/dist/types/commands/build.d.ts +2 -1
  266. package/dist/types/commands/deploy.d.ts +2 -1
  267. package/dist/types/commands/dev.d.ts +2 -1
  268. package/dist/types/commands/index.d.ts +1 -1
  269. package/dist/types/commands/inspect.d.ts +10 -6
  270. package/dist/types/commands/serve.d.ts +3 -0
  271. package/dist/types/config/default.d.ts +3 -0
  272. package/dist/types/config/index.d.ts +2 -0
  273. package/dist/types/config/initial/createHtmlConfig.d.ts +2 -0
  274. package/dist/types/config/initial/createOutputConfig.d.ts +2 -0
  275. package/dist/types/config/initial/createSourceConfig.d.ts +2 -0
  276. package/dist/types/config/initial/createToolsConfig.d.ts +2 -0
  277. package/dist/types/config/initial/index.d.ts +4 -0
  278. package/dist/types/config/initial/inits.d.ts +4 -0
  279. package/dist/types/config/initial/transformNormalizedConfig.d.ts +2 -0
  280. package/dist/types/defineConfig.d.ts +8 -0
  281. package/dist/types/hooks.d.ts +2 -37
  282. package/dist/types/index.d.ts +9 -3
  283. package/dist/types/initialize/index.d.ts +5 -0
  284. package/dist/types/locale/en.d.ts +1 -2
  285. package/dist/types/locale/index.d.ts +2 -4
  286. package/dist/types/locale/zh.d.ts +1 -2
  287. package/dist/types/schema/Schema.d.ts +14 -0
  288. package/dist/types/schema/index.d.ts +4 -0
  289. package/dist/types/schema/legacy.d.ts +3 -0
  290. package/dist/types/types/config/deploy.d.ts +9 -0
  291. package/dist/types/types/config/dev.d.ts +13 -0
  292. package/dist/types/types/config/experiments.d.ts +4 -0
  293. package/dist/types/types/config/html.d.ts +4 -0
  294. package/dist/types/types/config/index.d.ts +66 -0
  295. package/dist/types/types/config/output.d.ts +22 -0
  296. package/dist/types/types/config/performance.d.ts +4 -0
  297. package/dist/types/types/config/security.d.ts +4 -0
  298. package/dist/types/types/config/source.d.ts +24 -0
  299. package/dist/types/types/config/tools.d.ts +24 -0
  300. package/dist/types/types/hooks.d.ts +89 -0
  301. package/dist/types/types/index.d.ts +23 -0
  302. package/dist/types/types/legacyConfig/deploy.d.ts +8 -0
  303. package/dist/types/types/legacyConfig/dev.d.ts +13 -0
  304. package/dist/types/types/legacyConfig/index.d.ts +33 -0
  305. package/dist/types/types/legacyConfig/output.d.ts +51 -0
  306. package/dist/types/types/legacyConfig/source.d.ts +25 -0
  307. package/dist/types/types/legacyConfig/tools.d.ts +17 -0
  308. package/dist/types/utils/commands.d.ts +2 -0
  309. package/dist/types/utils/config.d.ts +2 -2
  310. package/dist/types/utils/createFileWatcher.d.ts +4 -0
  311. package/dist/types/utils/createServer.d.ts +9 -1
  312. package/dist/types/utils/getServerInternalPlugins.d.ts +2 -0
  313. package/dist/types/utils/printInstructions.d.ts +3 -2
  314. package/dist/types/utils/restart.d.ts +3 -0
  315. package/dist/types/utils/types.d.ts +2 -3
  316. package/lib/types.d.ts +1 -1
  317. package/package.json +37 -46
  318. package/dist/js/modern/analyze/getClientRoutes.js +0 -219
  319. package/dist/js/modern/commands/start.js +0 -31
  320. package/dist/js/modern/utils/createCompiler.js +0 -61
  321. package/dist/js/node/analyze/getClientRoutes.js +0 -241
  322. package/dist/js/node/commands/start.js +0 -47
  323. package/dist/js/node/utils/createCompiler.js +0 -81
  324. package/dist/types/commands/start.d.ts +0 -2
  325. package/dist/types/utils/createCompiler.d.ts +0 -13
@@ -1,109 +1,200 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
-
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
-
5
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
- import path from 'path';
8
- import { defineConfig, cli } from '@modern-js/core';
9
- import LintPlugin from '@modern-js/plugin-jarvis';
10
- import { cleanRequireCache, Import } from '@modern-js/utils';
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import path from "path";
41
+ import LintPlugin from "@modern-js/plugin-lint";
42
+ import { cleanRequireCache, emptyDir, Import } from "@modern-js/utils";
43
+ import { castArray } from "@modern-js/utils/lodash";
11
44
  import AnalyzePlugin from "./analyze";
45
+ import InitializePlugin from "./initialize";
12
46
  import { hooks } from "./hooks";
13
47
  import { i18n, localeKeys } from "./locale";
14
48
  import { getLocaleLanguage } from "./utils/language";
15
- export { defineConfig };
16
- const upgradeModel = Import.lazy('@modern-js/upgrade', require);
17
- export default (() => ({
18
- name: '@modern-js/app-tools',
19
- post: ['@modern-js/plugin-analyze', '@modern-js/plugin-ssr', '@modern-js/plugin-state', '@modern-js/plugin-router', '@modern-js/plugin-polyfill'],
49
+ import { getCommand } from "./utils/commands";
50
+ import { restart } from "./utils/restart";
51
+ export * from "./defineConfig";
52
+ export * from "./types";
53
+ const upgradeModel = Import.lazy(
54
+ "@modern-js/upgrade",
55
+ require
56
+ );
57
+ const devCommand = (program, api) => __async(void 0, null, function* () {
58
+ const runner = api.useHookRunners();
59
+ const devToolMetas = yield runner.registerDev();
60
+ const devProgram = program.command("dev").alias("start").usage("[options]").description(i18n.t(localeKeys.command.dev.describe)).option("-c --config <config>", i18n.t(localeKeys.command.shared.config)).option("-e --entry [entry...]", i18n.t(localeKeys.command.dev.entry)).option("--analyze", i18n.t(localeKeys.command.shared.analyze)).option("--api-only", i18n.t(localeKeys.command.dev.apiOnly)).action((options) => __async(void 0, null, function* () {
61
+ const { dev } = yield import("./commands/dev");
62
+ yield dev(api, options);
63
+ }));
64
+ for (const meta of devToolMetas) {
65
+ if (!meta.subCommands) {
66
+ continue;
67
+ }
68
+ for (const subCmd of meta.subCommands) {
69
+ devProgram.command(subCmd).action((..._0) => __async(void 0, [..._0], function* (options = {}) {
70
+ const { appDirectory } = api.useAppContext();
71
+ const { isTypescript } = yield import("@modern-js/utils");
72
+ yield runner.beforeDevTask(meta);
73
+ yield meta.action(options, {
74
+ isTsProject: isTypescript(appDirectory)
75
+ });
76
+ }));
77
+ }
78
+ }
79
+ });
80
+ const buildCommand = (program, api) => __async(void 0, null, function* () {
81
+ const runner = api.useHookRunners();
82
+ const platformBuilders = yield runner.registerBuildPlatform();
83
+ const buildProgram = program.command("build").usage("[options]").description(i18n.t(localeKeys.command.build.describe)).option("-c --config <config>", i18n.t(localeKeys.command.shared.config)).option("--analyze", i18n.t(localeKeys.command.shared.analyze)).action((options) => __async(void 0, null, function* () {
84
+ const { build } = yield import("./commands/build");
85
+ yield build(api, options);
86
+ process.exit(0);
87
+ }));
88
+ for (const platformBuilder of platformBuilders) {
89
+ const platforms = castArray(platformBuilder.platform);
90
+ for (const platform of platforms) {
91
+ buildProgram.command(platform).action(() => __async(void 0, null, function* () {
92
+ const { appDirectory } = api.useAppContext();
93
+ const { isTypescript } = yield import("@modern-js/utils");
94
+ yield runner.beforeBuildPlatform(platformBuilders);
95
+ yield platformBuilder.build(platform, {
96
+ isTsProject: isTypescript(appDirectory)
97
+ });
98
+ }));
99
+ }
100
+ }
101
+ });
102
+ var src_default = () => ({
103
+ name: "@modern-js/app-tools",
104
+ post: [
105
+ "@modern-js/plugin-initialize",
106
+ "@modern-js/plugin-analyze",
107
+ "@modern-js/plugin-ssr",
108
+ "@modern-js/plugin-document",
109
+ "@modern-js/plugin-state",
110
+ "@modern-js/plugin-router",
111
+ "@modern-js/plugin-router-v5",
112
+ "@modern-js/plugin-polyfill"
113
+ ],
20
114
  registerHook: hooks,
21
- usePlugins: [AnalyzePlugin(), LintPlugin()],
22
- setup: api => {
115
+ usePlugins: [InitializePlugin(), AnalyzePlugin(), LintPlugin()],
116
+ setup: (api) => {
23
117
  const locale = getLocaleLanguage();
24
- i18n.changeLanguage({
25
- locale
26
- });
118
+ i18n.changeLanguage({ locale });
27
119
  return {
28
- commands({
29
- program
30
- }) {
31
- program.command('dev').usage('[options]').description(i18n.t(localeKeys.command.dev.describe)).option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).option('-e --entry [entry...]', i18n.t(localeKeys.command.dev.entry)).option('--analyze', i18n.t(localeKeys.command.shared.analyze)).option('--api-only', i18n.t(localeKeys.command.dev.apiOnly)).action(async options => {
32
- const {
33
- dev
34
- } = await import("./commands/dev");
35
- await dev(api, options);
36
- });
37
- program.command('build').usage('[options]').description(i18n.t(localeKeys.command.build.describe)).option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).option('--analyze', i18n.t(localeKeys.command.shared.analyze)).action(async options => {
38
- const {
39
- build
40
- } = await import("./commands/build");
41
- await build(api, options); // force exit after build.
42
- // eslint-disable-next-line no-process-exit
43
-
44
- process.exit(0);
45
- });
46
- program.command('start').usage('[options]').description(i18n.t(localeKeys.command.start.describe)).option('--api-only', i18n.t(localeKeys.command.dev.apiOnly)).option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).action(async () => {
47
- const {
48
- start
49
- } = await import("./commands/start");
50
- await start(api);
51
- });
52
- program.command('deploy').usage('[options]').option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).description(i18n.t(localeKeys.command.deploy.describe)).action(async options => {
53
- const {
54
- build
55
- } = await import("./commands/build");
56
- await build(api);
57
- const {
58
- deploy
59
- } = await import("./commands/deploy");
60
- await deploy(api, options); // eslint-disable-next-line no-process-exit
61
-
62
- process.exit(0);
63
- });
64
- program.command('new').usage('[options]').description(i18n.t(localeKeys.command.new.describe)).option('-d, --debug', i18n.t(localeKeys.command.new.debug), false).option('-c, --config <config>', i18n.t(localeKeys.command.new.config)).option('--dist-tag <tag>', i18n.t(localeKeys.command.new.distTag)).option('--registry', i18n.t(localeKeys.command.new.registry)).action(async options => {
65
- const {
66
- MWANewAction
67
- } = await import('@modern-js/new-action');
68
- await MWANewAction(_objectSpread(_objectSpread({}, options), {}, {
69
- locale
120
+ commands(_0) {
121
+ return __async(this, arguments, function* ({ program }) {
122
+ yield devCommand(program, api);
123
+ yield buildCommand(program, api);
124
+ program.command("serve").usage("[options]").description(i18n.t(localeKeys.command.serve.describe)).option("--api-only", i18n.t(localeKeys.command.dev.apiOnly)).option(
125
+ "-c --config <config>",
126
+ i18n.t(localeKeys.command.shared.config)
127
+ ).action(() => __async(this, null, function* () {
128
+ const { start } = yield import("./commands/serve");
129
+ yield start(api);
130
+ }));
131
+ program.command("deploy").usage("[options]").option(
132
+ "-c --config <config>",
133
+ i18n.t(localeKeys.command.shared.config)
134
+ ).description(i18n.t(localeKeys.command.deploy.describe)).action((options) => __async(this, null, function* () {
135
+ const { build } = yield import("./commands/build");
136
+ yield build(api);
137
+ const { deploy } = yield import("./commands/deploy");
138
+ yield deploy(api, options);
139
+ process.exit(0);
140
+ }));
141
+ program.command("new").usage("[options]").description(i18n.t(localeKeys.command.new.describe)).option("-d, --debug", i18n.t(localeKeys.command.new.debug), false).option(
142
+ "-c, --config <config>",
143
+ i18n.t(localeKeys.command.new.config)
144
+ ).option("--dist-tag <tag>", i18n.t(localeKeys.command.new.distTag)).option("--registry", i18n.t(localeKeys.command.new.registry)).action((options) => __async(this, null, function* () {
145
+ const { MWANewAction } = yield import("@modern-js/new-action");
146
+ yield MWANewAction(__spreadProps(__spreadValues({}, options), { locale }));
70
147
  }));
148
+ program.command("inspect").description("inspect internal webpack config").option(
149
+ `--env <env>`,
150
+ i18n.t(localeKeys.command.inspect.env),
151
+ "development"
152
+ ).option(
153
+ "--output <output>",
154
+ i18n.t(localeKeys.command.inspect.output),
155
+ "/"
156
+ ).option("--verbose", i18n.t(localeKeys.command.inspect.verbose)).option(
157
+ "-c --config <config>",
158
+ i18n.t(localeKeys.command.shared.config)
159
+ ).action((options) => __async(this, null, function* () {
160
+ const { inspect } = yield import("./commands/inspect");
161
+ inspect(api, options);
162
+ }));
163
+ upgradeModel.defineCommand(program.command("upgrade"));
71
164
  });
72
- program.command('inspect').description('inspect internal webpack config').option(`--env <env>`, i18n.t(localeKeys.command.inspect.env), 'development').option('--output <output>', i18n.t(localeKeys.command.inspect.output), '/').option('--no-console', i18n.t(localeKeys.command.inspect.noConsole)).option('--verbose', i18n.t(localeKeys.command.inspect.verbose)).option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).action(async options => {
73
- const {
74
- inspect
75
- } = await import("./commands/inspect");
76
- inspect(api, options);
165
+ },
166
+ prepare() {
167
+ return __async(this, null, function* () {
168
+ const command = getCommand();
169
+ if (command === "dev" || command === "start" || command === "build") {
170
+ const appContext = api.useAppContext();
171
+ yield emptyDir(appContext.distDirectory);
172
+ }
77
173
  });
78
- upgradeModel.defineCommand(program.command('upgrade'));
79
174
  },
80
-
81
- // 这里会被 core/initWatcher 监听的文件变动触发,如果是 src 目录下的文件变动,则不做 restart
82
- async fileChange(e) {
83
- const {
84
- filename,
85
- eventType
86
- } = e;
87
- const appContext = api.useAppContext();
88
- const {
89
- appDirectory,
90
- srcDirectory
91
- } = appContext;
92
- const absolutePath = path.resolve(appDirectory, filename);
93
-
94
- if (!absolutePath.includes(srcDirectory) && (eventType === 'change' || eventType === 'unlink')) {
95
- const {
96
- closeServer
97
- } = await import("./utils/createServer");
98
- await closeServer();
99
- await cli.restart();
100
- }
175
+ fileChange(e) {
176
+ return __async(this, null, function* () {
177
+ const { filename, eventType } = e;
178
+ const appContext = api.useAppContext();
179
+ const { appDirectory, srcDirectory } = appContext;
180
+ const absolutePath = path.resolve(appDirectory, filename);
181
+ if (!absolutePath.includes(srcDirectory) && (eventType === "change" || eventType === "unlink")) {
182
+ const { closeServer } = yield import("./utils/createServer");
183
+ yield closeServer();
184
+ yield restart(api.useHookRunners(), filename);
185
+ }
186
+ });
101
187
  },
102
-
103
- async beforeRestart() {
104
- cleanRequireCache([require.resolve("./analyze")]);
188
+ beforeRestart() {
189
+ return __async(this, null, function* () {
190
+ cleanRequireCache([require.resolve("./analyze")]);
191
+ });
105
192
  }
106
-
107
193
  };
108
194
  }
109
- }));
195
+ });
196
+ export {
197
+ buildCommand,
198
+ src_default as default,
199
+ devCommand
200
+ };
@@ -0,0 +1,120 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import { ensureAbsolutePath, getPort, isDev } from "@modern-js/utils";
41
+ import { legacySchema, schema } from "../schema";
42
+ import { isDevCommand } from "../utils/commands";
43
+ import { transformNormalizedConfig } from "../config/initial/transformNormalizedConfig";
44
+ import {
45
+ checkIsLegacyConfig,
46
+ createDefaultConfig,
47
+ createLegacyDefaultConfig
48
+ } from "../config";
49
+ var initialize_default = () => ({
50
+ name: "@modern-js/plugin-initialize",
51
+ setup(api) {
52
+ const config = () => {
53
+ const appContext = api.useAppContext();
54
+ const userConfig = api.useConfigContext();
55
+ return checkIsLegacyConfig(userConfig) ? createLegacyDefaultConfig(appContext) : createDefaultConfig(appContext);
56
+ };
57
+ const validateSchema = () => {
58
+ const userConfig = api.useConfigContext();
59
+ const schemas = checkIsLegacyConfig(userConfig) ? legacySchema : schema;
60
+ return schemas.generate();
61
+ };
62
+ return {
63
+ config,
64
+ validateSchema,
65
+ resolvedConfig(_0) {
66
+ return __async(this, arguments, function* ({ resolved }) {
67
+ var _a2, _b;
68
+ let appContext = api.useAppContext();
69
+ const userConfig = api.useConfigContext();
70
+ const port = yield getDevServerPort(appContext, resolved);
71
+ appContext = __spreadProps(__spreadValues({}, appContext), {
72
+ port,
73
+ distDirectory: ensureAbsolutePath(
74
+ appContext.distDirectory,
75
+ ((_a2 = resolved.output.distPath) == null ? void 0 : _a2.root) || "dist"
76
+ )
77
+ });
78
+ api.setAppContext(appContext);
79
+ const normalizedConfig = checkIsLegacyConfig(resolved) ? transformNormalizedConfig(resolved) : resolved;
80
+ return {
81
+ resolved: {
82
+ _raw: userConfig,
83
+ source: normalizedConfig.source || {},
84
+ server: __spreadProps(__spreadValues({}, normalizedConfig.server || {}), {
85
+ port: port || ((_b = normalizedConfig.server) == null ? void 0 : _b.port)
86
+ }),
87
+ bff: normalizedConfig.bff || {},
88
+ dev: normalizedConfig.dev || {},
89
+ html: normalizedConfig.html || {},
90
+ output: normalizedConfig.output || {},
91
+ security: normalizedConfig.security || {},
92
+ tools: normalizedConfig.tools || {},
93
+ testing: normalizedConfig.testing || {},
94
+ plugins: normalizedConfig.plugins || [],
95
+ builderPlugins: normalizedConfig.builderPlugins || [],
96
+ runtime: normalizedConfig.runtime || {},
97
+ runtimeByEntries: normalizedConfig.runtimeByEntries || {},
98
+ deploy: normalizedConfig.deploy || {},
99
+ performance: normalizedConfig.performance || {},
100
+ experiments: normalizedConfig.experiments || {},
101
+ autoLoadPlugins: normalizedConfig.autoLoadPlugins || false
102
+ }
103
+ };
104
+ });
105
+ }
106
+ };
107
+ }
108
+ });
109
+ function getDevServerPort(appContext, resolved) {
110
+ return __async(this, null, function* () {
111
+ var _a;
112
+ if (isDev() && isDevCommand()) {
113
+ return ((_a = appContext.port) != null ? _a : 0) > 0 ? appContext.port : yield getPort(resolved.server.port || 8080);
114
+ }
115
+ return resolved.server.port;
116
+ });
117
+ }
118
+ export {
119
+ initialize_default as default
120
+ };
@@ -1,35 +1,33 @@
1
- export const EN_LOCALE = {
1
+ const EN_LOCALE = {
2
2
  command: {
3
3
  shared: {
4
- analyze: 'analyze bundle size',
5
- config: 'specify config file'
4
+ analyze: "analyze bundle size",
5
+ config: "specify config file"
6
6
  },
7
7
  dev: {
8
- describe: 'start dev server',
9
- entry: 'compiler by entry',
10
- apiOnly: 'start api server only'
8
+ describe: "start dev server",
9
+ entry: "compiler by entry",
10
+ apiOnly: "start api server only"
11
11
  },
12
12
  build: {
13
- describe: 'build application'
14
- },
15
- start: {
16
- describe: 'start server'
17
- },
18
- deploy: {
19
- describe: 'deploy application'
13
+ describe: "build application"
20
14
  },
15
+ serve: { describe: "start server" },
16
+ deploy: { describe: "deploy application" },
21
17
  new: {
22
- describe: 'generator runner for MWA project',
23
- debug: 'using debug mode to log something',
24
- config: 'set default generator config(json string)',
18
+ describe: "generator runner for MWA project",
19
+ debug: "using debug mode to log something",
20
+ config: "set default generator config(json string)",
25
21
  distTag: `use specified tag version for it's generator`,
26
- registry: 'set npm registry url to run npm command'
22
+ registry: "set npm registry url to run npm command"
27
23
  },
28
24
  inspect: {
29
- env: 'specify env mode',
30
- output: 'specify inspect content output path',
31
- noConsole: 'do not log the result in terminal',
32
- verbose: 'show full function definitions in output'
25
+ env: "specify env mode",
26
+ output: "specify inspect content output path",
27
+ verbose: "show full function definitions in output"
33
28
  }
34
29
  }
35
- };
30
+ };
31
+ export {
32
+ EN_LOCALE
33
+ };
@@ -1,9 +1,9 @@
1
- import { I18n } from '@modern-js/plugin-i18n';
1
+ import { I18n } from "@modern-js/plugin-i18n";
2
2
  import { ZH_LOCALE } from "./zh";
3
3
  import { EN_LOCALE } from "./en";
4
4
  const i18n = new I18n();
5
- const localeKeys = i18n.init('zh', {
6
- zh: ZH_LOCALE,
7
- en: EN_LOCALE
8
- });
9
- export { i18n, localeKeys };
5
+ const localeKeys = i18n.init("zh", { zh: ZH_LOCALE, en: EN_LOCALE });
6
+ export {
7
+ i18n,
8
+ localeKeys
9
+ };
@@ -1,35 +1,33 @@
1
- export const ZH_LOCALE = {
1
+ const ZH_LOCALE = {
2
2
  command: {
3
3
  shared: {
4
- analyze: '分析构建产物体积,查看各个模块打包后的大小',
5
- config: '指定配置文件路径,可以为相对路径或绝对路径'
4
+ analyze: "分析构建产物体积,查看各个模块打包后的大小",
5
+ config: "指定配置文件路径,可以为相对路径或绝对路径"
6
6
  },
7
7
  dev: {
8
- describe: '本地开发命令',
9
- entry: '指定入口,编译特定的页面',
10
- apiOnly: '仅启动 API 接口服务'
8
+ describe: "本地开发命令",
9
+ entry: "指定入口,编译特定的页面",
10
+ apiOnly: "仅启动 API 接口服务"
11
11
  },
12
12
  build: {
13
- describe: '构建应用命令'
14
- },
15
- start: {
16
- describe: '应用启动命令'
17
- },
18
- deploy: {
19
- describe: '部署应用命令'
13
+ describe: "构建应用命令"
20
14
  },
15
+ serve: { describe: "应用启动命令" },
16
+ deploy: { describe: "部署应用命令" },
21
17
  new: {
22
- describe: 'MWA 项目中执行生成器',
23
- debug: '开启 Debug 模式,打印调试日志信息',
24
- config: '生成器运行默认配置(JSON 字符串)',
25
- distTag: '生成器使用特殊的 npm Tag 版本',
26
- registry: '生成器运行过程中定制 npm Registry'
18
+ describe: "MWA 项目中执行生成器",
19
+ debug: "开启 Debug 模式,打印调试日志信息",
20
+ config: "生成器运行默认配置(JSON 字符串)",
21
+ distTag: "生成器使用特殊的 npm Tag 版本",
22
+ registry: "生成器运行过程中定制 npm Registry"
27
23
  },
28
24
  inspect: {
29
- env: '查看指定环境下的配置',
30
- output: '指定在 dist 目录下输出的路径',
31
- noConsole: '不在终端中输出完整结果',
32
- verbose: '在结果中展示函数的完整内容'
25
+ env: "查看指定环境下的配置",
26
+ output: "指定在 dist 目录下输出的路径",
27
+ verbose: "在结果中展示函数的完整内容"
33
28
  }
34
29
  }
35
- };
30
+ };
31
+ export {
32
+ ZH_LOCALE
33
+ };
@@ -0,0 +1,40 @@
1
+ import { merge } from "@modern-js/utils/lodash";
2
+ class Schema extends Map {
3
+ constructor(baseSchema = {}) {
4
+ super();
5
+ this.schema = baseSchema;
6
+ }
7
+ setSchema(key, object) {
8
+ Object.entries(object).forEach(([k, v]) => {
9
+ const target = `${key}.${k}`;
10
+ this.set(target, v);
11
+ });
12
+ return this;
13
+ }
14
+ set(key, value) {
15
+ if (this.has(key)) {
16
+ merge(this.schema[key], value);
17
+ } else {
18
+ this.schema[key] = value;
19
+ }
20
+ return this;
21
+ }
22
+ has(key) {
23
+ return key in this.schema;
24
+ }
25
+ get(key) {
26
+ return this.schema[key];
27
+ }
28
+ delete(key) {
29
+ return delete this.schema[key];
30
+ }
31
+ generate() {
32
+ return Object.entries(this.schema).map(([target, schema]) => ({
33
+ target,
34
+ schema
35
+ }));
36
+ }
37
+ }
38
+ export {
39
+ Schema
40
+ };