@modern-js/app-tools 2.0.0-beta.3 → 2.0.0-canary.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 (221) hide show
  1. package/dist/js/modern/analyze/constants.js +38 -18
  2. package/dist/js/modern/analyze/generateCode.js +261 -221
  3. package/dist/js/modern/analyze/getBundleEntry.js +31 -32
  4. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +93 -49
  5. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
  6. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
  7. package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
  8. package/dist/js/modern/analyze/getFileSystemEntry.js +43 -22
  9. package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
  10. package/dist/js/modern/analyze/getServerRoutes.js +122 -126
  11. package/dist/js/modern/analyze/index.js +193 -159
  12. package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
  13. package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
  14. package/dist/js/modern/analyze/nestedRoutes.js +106 -60
  15. package/dist/js/modern/analyze/templates.js +161 -80
  16. package/dist/js/modern/analyze/utils.js +87 -66
  17. package/dist/js/modern/builder/builderPlugins/compatModern.js +121 -109
  18. package/dist/js/modern/builder/index.js +122 -83
  19. package/dist/js/modern/builder/loaders/routerLoader.js +9 -12
  20. package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -1
  21. package/dist/js/modern/builder/share.js +22 -20
  22. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
  23. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
  24. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +98 -84
  25. package/dist/js/modern/commands/build.js +67 -42
  26. package/dist/js/modern/commands/deploy.js +27 -4
  27. package/dist/js/modern/commands/dev.js +77 -27
  28. package/dist/js/modern/commands/index.js +1 -1
  29. package/dist/js/modern/commands/inspect.js +30 -5
  30. package/dist/js/modern/commands/start.js +37 -15
  31. package/dist/js/modern/config/default.js +103 -113
  32. package/dist/js/modern/config/index.js +8 -2
  33. package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
  34. package/dist/js/modern/config/initial/createOutputConfig.js +9 -10
  35. package/dist/js/modern/config/initial/createSourceConfig.js +5 -2
  36. package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
  37. package/dist/js/modern/config/initial/index.js +9 -4
  38. package/dist/js/modern/config/initial/inits.js +109 -73
  39. package/dist/js/modern/config/initial/transformNormalizedConfig.js +6 -3
  40. package/dist/js/modern/defineConfig.js +26 -11
  41. package/dist/js/modern/exports/server.js +4 -1
  42. package/dist/js/modern/hooks.js +10 -3
  43. package/dist/js/modern/index.js +140 -89
  44. package/dist/js/modern/initialize/index.js +98 -51
  45. package/dist/js/modern/locale/en.js +20 -21
  46. package/dist/js/modern/locale/index.js +6 -6
  47. package/dist/js/modern/locale/zh.js +21 -22
  48. package/dist/js/modern/schema/Schema.js +6 -5
  49. package/dist/js/modern/schema/index.js +51 -100
  50. package/dist/js/modern/schema/legacy.js +96 -231
  51. package/dist/js/modern/types/config/index.js +0 -1
  52. package/dist/js/modern/types/index.js +0 -1
  53. package/dist/js/modern/types/legacyConfig/output.js +0 -1
  54. package/dist/js/modern/utils/commands.js +5 -2
  55. package/dist/js/modern/utils/config.js +102 -41
  56. package/dist/js/modern/utils/createFileWatcher.js +84 -51
  57. package/dist/js/modern/utils/createServer.js +63 -17
  58. package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
  59. package/dist/js/modern/utils/language.js +6 -3
  60. package/dist/js/modern/utils/printInstructions.js +27 -8
  61. package/dist/js/modern/utils/restart.js +43 -16
  62. package/dist/js/modern/utils/routes.js +29 -12
  63. package/dist/js/node/analyze/constants.js +54 -39
  64. package/dist/js/node/analyze/generateCode.js +281 -239
  65. package/dist/js/node/analyze/getBundleEntry.js +55 -44
  66. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +132 -76
  67. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +128 -74
  68. package/dist/js/node/analyze/getClientRoutes/index.js +23 -17
  69. package/dist/js/node/analyze/getClientRoutes/utils.js +44 -21
  70. package/dist/js/node/analyze/getFileSystemEntry.js +70 -39
  71. package/dist/js/node/analyze/getHtmlTemplate.js +116 -61
  72. package/dist/js/node/analyze/getServerRoutes.js +143 -137
  73. package/dist/js/node/analyze/index.js +240 -174
  74. package/dist/js/node/analyze/isDefaultExportFunction.js +55 -26
  75. package/dist/js/node/analyze/makeLegalIdentifier.js +27 -15
  76. package/dist/js/node/analyze/nestedRoutes.js +137 -75
  77. package/dist/js/node/analyze/templates.js +183 -89
  78. package/dist/js/node/analyze/utils.js +114 -81
  79. package/dist/js/node/builder/builderPlugins/compatModern.js +149 -122
  80. package/dist/js/node/builder/index.js +150 -92
  81. package/dist/js/node/builder/loaders/routerLoader.js +27 -18
  82. package/dist/js/node/builder/loaders/serverModuleLoader.js +22 -7
  83. package/dist/js/node/builder/share.js +45 -25
  84. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +39 -26
  85. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +47 -31
  86. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +116 -90
  87. package/dist/js/node/commands/build.js +89 -52
  88. package/dist/js/node/commands/deploy.js +45 -10
  89. package/dist/js/node/commands/dev.js +99 -41
  90. package/dist/js/node/commands/index.js +19 -38
  91. package/dist/js/node/commands/inspect.js +48 -11
  92. package/dist/js/node/commands/start.js +65 -26
  93. package/dist/js/node/config/default.js +119 -117
  94. package/dist/js/node/config/index.js +25 -29
  95. package/dist/js/node/config/initial/createHtmlConfig.js +22 -6
  96. package/dist/js/node/config/initial/createOutputConfig.js +26 -14
  97. package/dist/js/node/config/initial/createSourceConfig.js +22 -6
  98. package/dist/js/node/config/initial/createToolsConfig.js +24 -10
  99. package/dist/js/node/config/initial/index.js +28 -17
  100. package/dist/js/node/config/initial/inits.js +126 -81
  101. package/dist/js/node/config/initial/transformNormalizedConfig.js +31 -15
  102. package/dist/js/node/defineConfig.js +43 -17
  103. package/dist/js/node/exports/server.js +21 -10
  104. package/dist/js/node/hooks.js +44 -29
  105. package/dist/js/node/index.js +190 -130
  106. package/dist/js/node/initialize/index.js +116 -61
  107. package/dist/js/node/locale/en.js +36 -25
  108. package/dist/js/node/locale/index.js +27 -15
  109. package/dist/js/node/locale/zh.js +37 -26
  110. package/dist/js/node/schema/Schema.js +23 -10
  111. package/dist/js/node/schema/index.js +77 -114
  112. package/dist/js/node/schema/legacy.js +117 -240
  113. package/dist/js/node/types/config/index.js +17 -16
  114. package/dist/js/node/types/index.js +19 -38
  115. package/dist/js/node/types/legacyConfig/output.js +0 -5
  116. package/dist/js/node/utils/commands.js +21 -6
  117. package/dist/js/node/utils/config.js +120 -51
  118. package/dist/js/node/utils/createFileWatcher.js +104 -61
  119. package/dist/js/node/utils/createServer.js +86 -25
  120. package/dist/js/node/utils/getSpecifiedEntries.js +64 -25
  121. package/dist/js/node/utils/language.js +24 -8
  122. package/dist/js/node/utils/printInstructions.js +47 -16
  123. package/dist/js/node/utils/restart.js +61 -21
  124. package/dist/js/node/utils/routes.js +53 -18
  125. package/dist/js/treeshaking/analyze/constants.js +28 -18
  126. package/dist/js/treeshaking/analyze/generateCode.js +599 -406
  127. package/dist/js/treeshaking/analyze/getBundleEntry.js +52 -63
  128. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +214 -168
  129. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  130. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  131. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  132. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +89 -86
  133. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  134. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
  135. package/dist/js/treeshaking/analyze/index.js +558 -303
  136. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  137. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  138. package/dist/js/treeshaking/analyze/nestedRoutes.js +411 -200
  139. package/dist/js/treeshaking/analyze/templates.js +433 -236
  140. package/dist/js/treeshaking/analyze/utils.js +358 -153
  141. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +281 -200
  142. package/dist/js/treeshaking/builder/index.js +371 -163
  143. package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
  144. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
  145. package/dist/js/treeshaking/builder/share.js +41 -44
  146. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  147. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  148. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +332 -112
  149. package/dist/js/treeshaking/commands/build.js +286 -88
  150. package/dist/js/treeshaking/commands/deploy.js +153 -25
  151. package/dist/js/treeshaking/commands/dev.js +318 -131
  152. package/dist/js/treeshaking/commands/index.js +1 -1
  153. package/dist/js/treeshaking/commands/inspect.js +147 -32
  154. package/dist/js/treeshaking/commands/start.js +190 -67
  155. package/dist/js/treeshaking/config/default.js +210 -198
  156. package/dist/js/treeshaking/config/index.js +3 -2
  157. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  158. package/dist/js/treeshaking/config/initial/createOutputConfig.js +43 -70
  159. package/dist/js/treeshaking/config/initial/createSourceConfig.js +37 -40
  160. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  161. package/dist/js/treeshaking/config/initial/index.js +10 -9
  162. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  163. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +27 -34
  164. package/dist/js/treeshaking/defineConfig.js +60 -13
  165. package/dist/js/treeshaking/exports/server.js +2 -1
  166. package/dist/js/treeshaking/hooks.js +26 -25
  167. package/dist/js/treeshaking/index.js +465 -257
  168. package/dist/js/treeshaking/initialize/index.js +290 -112
  169. package/dist/js/treeshaking/locale/en.js +34 -33
  170. package/dist/js/treeshaking/locale/index.js +5 -5
  171. package/dist/js/treeshaking/locale/zh.js +34 -33
  172. package/dist/js/treeshaking/schema/Schema.js +267 -69
  173. package/dist/js/treeshaking/schema/index.js +165 -121
  174. package/dist/js/treeshaking/schema/legacy.js +323 -256
  175. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  176. package/dist/js/treeshaking/types/config/dev.js +1 -0
  177. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  178. package/dist/js/treeshaking/types/config/html.js +1 -0
  179. package/dist/js/treeshaking/types/config/index.js +0 -1
  180. package/dist/js/treeshaking/types/config/output.js +1 -0
  181. package/dist/js/treeshaking/types/config/performance.js +1 -0
  182. package/dist/js/treeshaking/types/config/security.js +1 -0
  183. package/dist/js/treeshaking/types/config/source.js +1 -0
  184. package/dist/js/treeshaking/types/config/tools.js +1 -0
  185. package/dist/js/treeshaking/types/hooks.js +1 -0
  186. package/dist/js/treeshaking/types/index.js +0 -1
  187. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  188. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  189. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  190. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  191. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  192. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  193. package/dist/js/treeshaking/utils/commands.js +6 -5
  194. package/dist/js/treeshaking/utils/config.js +295 -117
  195. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  196. package/dist/js/treeshaking/utils/createServer.js +252 -67
  197. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  198. package/dist/js/treeshaking/utils/language.js +6 -5
  199. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  200. package/dist/js/treeshaking/utils/restart.js +184 -42
  201. package/dist/js/treeshaking/utils/routes.js +151 -27
  202. package/dist/js/treeshaking/utils/types.js +1 -0
  203. package/dist/types/analyze/index.d.ts +2 -0
  204. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  205. package/dist/types/builder/index.d.ts +2 -2
  206. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  207. package/dist/types/defineConfig.d.ts +1 -0
  208. package/dist/types/index.d.ts +2 -0
  209. package/dist/types/initialize/index.d.ts +2 -0
  210. package/dist/types/types/config/index.d.ts +1 -0
  211. package/dist/types/types/config/output.d.ts +0 -1
  212. package/dist/types/types/config/source.d.ts +1 -0
  213. package/dist/types/types/config/tools.d.ts +2 -0
  214. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  215. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  216. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  217. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  218. package/dist/types/utils/config.d.ts +1 -0
  219. package/dist/types/utils/createServer.d.ts +1 -0
  220. package/dist/types/utils/restart.d.ts +1 -1
  221. package/package.json +9 -8
@@ -1,14 +1,25 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { findExists, ensureAbsolutePath } from '@modern-js/utils';
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { findExists, ensureAbsolutePath } from "@modern-js/utils";
4
4
  import { isDefaultExportFunction } from "./isDefaultExportFunction";
5
- import { JS_EXTENSIONS, INDEX_FILE_NAME, APP_FILE_NAME, PAGES_DIR_NAME, FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT, NESTED_ROUTES_DIR } from "./constants";
6
- const hasIndex = dir => findExists(JS_EXTENSIONS.map(ext => path.resolve(dir, `${INDEX_FILE_NAME}${ext}`)));
7
- const hasApp = dir => findExists(JS_EXTENSIONS.map(ext => path.resolve(dir, `${APP_FILE_NAME}${ext}`)));
8
- const hasPages = dir => fs.existsSync(path.join(dir, PAGES_DIR_NAME));
9
- const hasNestedRoutes = dir => fs.existsSync(path.join(dir, NESTED_ROUTES_DIR));
10
- const isBundleEntry = dir => hasApp(dir) || hasPages(dir) || hasIndex(dir) || hasNestedRoutes(dir);
11
- const scanDir = dirs => dirs.map(dir => {
5
+ import {
6
+ JS_EXTENSIONS,
7
+ INDEX_FILE_NAME,
8
+ APP_FILE_NAME,
9
+ PAGES_DIR_NAME,
10
+ FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT,
11
+ NESTED_ROUTES_DIR
12
+ } from "./constants";
13
+ const hasIndex = (dir) => findExists(
14
+ JS_EXTENSIONS.map((ext) => path.resolve(dir, `${INDEX_FILE_NAME}${ext}`))
15
+ );
16
+ const hasApp = (dir) => findExists(
17
+ JS_EXTENSIONS.map((ext) => path.resolve(dir, `${APP_FILE_NAME}${ext}`))
18
+ );
19
+ const hasPages = (dir) => fs.existsSync(path.join(dir, PAGES_DIR_NAME));
20
+ const hasNestedRoutes = (dir) => fs.existsSync(path.join(dir, NESTED_ROUTES_DIR));
21
+ const isBundleEntry = (dir) => hasApp(dir) || hasPages(dir) || hasIndex(dir) || hasNestedRoutes(dir);
22
+ const scanDir = (dirs) => dirs.map((dir) => {
12
23
  const indexFile = hasIndex(dir);
13
24
  const customBootstrap = isDefaultExportFunction(indexFile) ? indexFile : false;
14
25
  const entryName = path.basename(dir);
@@ -35,9 +46,16 @@ const scanDir = dirs => dirs.map(dir => {
35
46
  if (isHasNestedRoutes || isHasPages) {
36
47
  const entrypoint = {
37
48
  entryName,
38
- entry: '',
49
+ entry: "",
39
50
  fileSystemRoutes: {
40
- globalApp: findExists(JS_EXTENSIONS.map(ext => path.resolve(dir, `./${PAGES_DIR_NAME}/${FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT}${ext}`)))
51
+ globalApp: findExists(
52
+ JS_EXTENSIONS.map(
53
+ (ext) => path.resolve(
54
+ dir,
55
+ `./${PAGES_DIR_NAME}/${FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT}${ext}`
56
+ )
57
+ )
58
+ )
41
59
  },
42
60
  isAutoMount: true,
43
61
  absoluteEntryDir: path.resolve(dir),
@@ -58,23 +76,26 @@ const scanDir = dirs => dirs.map(dir => {
58
76
  isAutoMount: false
59
77
  };
60
78
  });
61
- export const getFileSystemEntry = (appContext, config) => {
79
+ const getFileSystemEntry = (appContext, config) => {
80
+ const { appDirectory } = appContext;
62
81
  const {
63
- appDirectory
64
- } = appContext;
65
- const {
66
- source: {
67
- entriesDir
68
- }
82
+ source: { entriesDir }
69
83
  } = config;
70
- const src = ensureAbsolutePath(appDirectory, entriesDir || '');
84
+ const src = ensureAbsolutePath(appDirectory, entriesDir || "");
71
85
  if (fs.existsSync(src)) {
72
86
  if (fs.statSync(src).isDirectory()) {
73
- return scanDir(isBundleEntry(src) ? [src] : fs.readdirSync(src).map(file => path.join(src, file)).filter(file => fs.statSync(file).isDirectory() && isBundleEntry(file)));
87
+ return scanDir(
88
+ isBundleEntry(src) ? [src] : fs.readdirSync(src).map((file) => path.join(src, file)).filter(
89
+ (file) => fs.statSync(file).isDirectory() && isBundleEntry(file)
90
+ )
91
+ );
74
92
  } else {
75
93
  throw Error(`source.entriesDir accept a directory.`);
76
94
  }
77
95
  } else {
78
96
  throw Error(`src dir ${entriesDir} not found.`);
79
97
  }
80
- };
98
+ };
99
+ export {
100
+ getFileSystemEntry
101
+ };
@@ -1,75 +1,115 @@
1
- import path from 'path';
2
- import { fs, findExists, MAIN_ENTRY_NAME } from '@modern-js/utils';
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import path from "path";
22
+ import { fs, findExists, MAIN_ENTRY_NAME } from "@modern-js/utils";
3
23
  import { HTML_PARTIALS_EXTENSIONS, HTML_PARTIALS_FOLDER } from "./constants";
4
24
  import * as templates from "./templates";
5
- var PartialPosition;
6
- (function (PartialPosition) {
7
- PartialPosition["TOP"] = "top";
8
- PartialPosition["HEAD"] = "head";
9
- PartialPosition["BODY"] = "body";
10
- PartialPosition["BOTTOM"] = "bottom";
11
- PartialPosition["INDEX"] = "index";
12
- })(PartialPosition || (PartialPosition = {}));
25
+ var PartialPosition = /* @__PURE__ */ ((PartialPosition2) => {
26
+ PartialPosition2["TOP"] = "top";
27
+ PartialPosition2["HEAD"] = "head";
28
+ PartialPosition2["BODY"] = "body";
29
+ PartialPosition2["BOTTOM"] = "bottom";
30
+ PartialPosition2["INDEX"] = "index";
31
+ return PartialPosition2;
32
+ })(PartialPosition || {});
13
33
  const findPartials = (dir, entryName, position) => {
14
34
  if (fs.existsSync(dir)) {
15
- const base = findExists(HTML_PARTIALS_EXTENSIONS.map(ext => path.resolve(dir, `${position}${ext}`)));
16
- const file = entryName ? findExists(HTML_PARTIALS_EXTENSIONS.map(ext => path.resolve(dir, entryName, `${position}${ext}`))) || base : base;
17
- return file ? {
18
- file,
19
- content: fs.readFileSync(file, 'utf8')
20
- } : null;
35
+ const base = findExists(
36
+ HTML_PARTIALS_EXTENSIONS.map(
37
+ (ext) => path.resolve(dir, `${position}${ext}`)
38
+ )
39
+ );
40
+ const file = entryName ? findExists(
41
+ HTML_PARTIALS_EXTENSIONS.map(
42
+ (ext) => path.resolve(dir, entryName, `${position}${ext}`)
43
+ )
44
+ ) || base : base;
45
+ return file ? { file, content: fs.readFileSync(file, "utf8") } : null;
21
46
  }
22
47
  return null;
23
48
  };
24
-
25
- // generate html template for
26
- export const getHtmlTemplate = async (entrypoints, api, {
49
+ const getHtmlTemplate = (_0, _1, _2) => __async(void 0, [_0, _1, _2], function* (entrypoints, api, {
27
50
  appContext,
28
51
  config
29
- }) => {
30
- const {
31
- appDirectory,
32
- internalDirectory
33
- } = appContext;
52
+ }) {
53
+ const { appDirectory, internalDirectory } = appContext;
34
54
  const {
35
- source: {
36
- configDir
37
- }
55
+ source: { configDir }
38
56
  } = config;
39
- const htmlDir = path.resolve(appDirectory, configDir || '', HTML_PARTIALS_FOLDER);
57
+ const htmlDir = path.resolve(
58
+ appDirectory,
59
+ configDir || "",
60
+ HTML_PARTIALS_FOLDER
61
+ );
40
62
  const htmlTemplates = {};
41
63
  for (const entrypoint of entrypoints) {
42
- const {
43
- entryName
44
- } = entrypoint;
45
- const name = entrypoints.length === 1 && entryName === MAIN_ENTRY_NAME ? '' : entryName;
46
- const customIndexTemplate = findPartials(htmlDir, name, PartialPosition.INDEX);
64
+ const { entryName } = entrypoint;
65
+ const name = entrypoints.length === 1 && entryName === MAIN_ENTRY_NAME ? "" : entryName;
66
+ const customIndexTemplate = findPartials(
67
+ htmlDir,
68
+ name,
69
+ "index" /* INDEX */
70
+ );
47
71
  if (customIndexTemplate) {
48
72
  htmlTemplates[entryName] = customIndexTemplate.file;
49
73
  } else {
50
74
  const hookRunners = api.useHookRunners();
51
- const {
52
- partials
53
- } = await hookRunners.htmlPartials({
75
+ const { partials } = yield hookRunners.htmlPartials({
54
76
  entrypoint,
55
- partials: [PartialPosition.TOP, PartialPosition.HEAD, PartialPosition.BODY].reduce((previous, position) => {
56
- const found = findPartials(htmlDir, name, position);
57
- previous[position] = found ? [found.content] : [];
58
- return previous;
59
- }, {
60
- top: [],
61
- head: [],
62
- body: []
63
- })
77
+ partials: [
78
+ "top" /* TOP */,
79
+ "head" /* HEAD */,
80
+ "body" /* BODY */
81
+ ].reduce(
82
+ (previous, position) => {
83
+ const found = findPartials(htmlDir, name, position);
84
+ previous[position] = found ? [found.content] : [];
85
+ return previous;
86
+ },
87
+ {
88
+ top: [],
89
+ head: [],
90
+ body: []
91
+ }
92
+ )
64
93
  });
65
- const templatePath = path.resolve(internalDirectory, entryName, 'index.html');
66
- fs.outputFileSync(templatePath, templates.html(partials), 'utf8');
94
+ const templatePath = path.resolve(
95
+ internalDirectory,
96
+ entryName,
97
+ "index.html"
98
+ );
99
+ fs.outputFileSync(templatePath, templates.html(partials), "utf8");
67
100
  htmlTemplates[entryName] = templatePath;
68
- const bottomTemplate = findPartials(htmlDir, name, PartialPosition.BOTTOM);
101
+ const bottomTemplate = findPartials(
102
+ htmlDir,
103
+ name,
104
+ "bottom" /* BOTTOM */
105
+ );
69
106
  if (bottomTemplate) {
70
107
  htmlTemplates[`__${entryName}-bottom__`] = bottomTemplate.content;
71
108
  }
72
109
  }
73
110
  }
74
111
  return htmlTemplates;
75
- };
112
+ });
113
+ export {
114
+ getHtmlTemplate
115
+ };
@@ -1,179 +1,175 @@
1
- const _excluded = ["path"],
2
- _excluded2 = ["path"];
3
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
- 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; }
6
- 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; }
7
- 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; }
8
- import path from 'path';
9
- import fs from 'fs';
10
- import { urlJoin, isPlainObject, removeLeadingSlash, getEntryOptions, SERVER_BUNDLE_DIRECTORY, MAIN_ENTRY_NAME, removeTailSlash } 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 __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import path from "path";
33
+ import fs from "fs";
34
+ import {
35
+ urlJoin,
36
+ isPlainObject,
37
+ removeLeadingSlash,
38
+ getEntryOptions,
39
+ SERVER_BUNDLE_DIRECTORY,
40
+ MAIN_ENTRY_NAME,
41
+ removeTailSlash
42
+ } from "@modern-js/utils";
11
43
  import { walkDirectory } from "./utils";
12
-
13
- /**
14
- * Add base url for each server route.
15
- * @param baseUrl - Base url from server.baseUrl
16
- * @param routes - Server routes.
17
- * @returns Server routes with baseUrl prefixed.
18
- */
19
44
  const applyBaseUrl = (baseUrl, routes) => {
20
45
  if (baseUrl) {
21
46
  if (Array.isArray(baseUrl)) {
22
- return baseUrl.reduce((previous, current) => [...previous, ...applyBaseUrl(current, routes)], []);
47
+ return baseUrl.reduce(
48
+ (previous, current) => [...previous, ...applyBaseUrl(current, routes)],
49
+ []
50
+ );
23
51
  } else {
24
- return routes.map(route => {
52
+ return routes.map((route) => {
25
53
  const urlPath = urlJoin(baseUrl, route.urlPath);
26
- return _objectSpread(_objectSpread({}, route), {}, {
27
- urlPath: urlPath === '/' ? urlPath : removeTailSlash(urlPath)
54
+ return __spreadProps(__spreadValues({}, route), {
55
+ urlPath: urlPath === "/" ? urlPath : removeTailSlash(urlPath)
28
56
  });
29
57
  });
30
58
  }
31
59
  }
32
60
  return routes;
33
61
  };
34
-
35
- /**
36
- *
37
- * @param original - Original entrypoint route info.
38
- * @param routeOptions - Custom entrypoint route config from server.routes.
39
- * @returns
40
- */
41
62
  const applyRouteOptions = (original, routeOptions) => {
42
- const {
43
- route,
44
- disableSpa
45
- } = routeOptions;
63
+ const { route, disableSpa } = routeOptions;
46
64
  original.isSPA = !disableSpa;
47
-
48
- // set entryPath as dir
49
65
  !original.isSPA && (original.entryPath = path.dirname(original.entryPath));
50
66
  let routes;
51
67
  if (route) {
52
68
  if (Array.isArray(route)) {
53
- routes = route.map(url => {
69
+ routes = route.map((url) => {
54
70
  if (isPlainObject(url)) {
55
- const _ref = url,
56
- {
57
- path: urlPath
58
- } = _ref,
59
- other = _objectWithoutProperties(_ref, _excluded);
60
- return _objectSpread(_objectSpread(_objectSpread({}, original), other), {}, {
71
+ const _a2 = url, { path: urlPath } = _a2, other = __objRest(_a2, ["path"]);
72
+ return __spreadProps(__spreadValues(__spreadValues({}, original), other), {
61
73
  urlPath
62
74
  });
63
75
  } else {
64
- return _objectSpread(_objectSpread({}, original), {}, {
76
+ return __spreadProps(__spreadValues({}, original), {
65
77
  urlPath: url
66
78
  });
67
79
  }
68
80
  });
69
81
  } else if (isPlainObject(route)) {
70
- const _ref2 = route,
71
- {
72
- path: urlPath
73
- } = _ref2,
74
- other = _objectWithoutProperties(_ref2, _excluded2);
75
- routes = [_objectSpread(_objectSpread(_objectSpread({}, original), other), {}, {
76
- urlPath
77
- })];
82
+ const _a = route, { path: urlPath } = _a, other = __objRest(_a, ["path"]);
83
+ routes = [
84
+ __spreadProps(__spreadValues(__spreadValues({}, original), other), {
85
+ urlPath
86
+ })
87
+ ];
78
88
  } else {
79
- routes = [_objectSpread(_objectSpread({}, original), {}, {
80
- urlPath: route
81
- })];
89
+ routes = [
90
+ __spreadProps(__spreadValues({}, original), {
91
+ urlPath: route
92
+ })
93
+ ];
82
94
  }
83
95
  } else {
84
96
  routes = [original];
85
97
  }
86
98
  return routes;
87
99
  };
88
-
89
- /**
90
- * Collect routes from entrypoints.
91
- * @param entrypoints - Bundle entrypoints.
92
- * @param config - Normalized user config.
93
- * @returns entrypoint Routes
94
- */
95
100
  const collectHtmlRoutes = (entrypoints, appContext, config) => {
96
101
  const {
97
- html: {
98
- disableHtmlFolder
99
- },
100
- output: {
101
- distPath: {
102
- html: htmlPath
103
- } = {},
104
- enableModernMode
105
- },
106
- server: {
107
- baseUrl,
108
- routes,
109
- ssr,
110
- ssrByEntries
111
- }
102
+ html: { disableHtmlFolder },
103
+ output: { distPath: { html: htmlPath } = {} },
104
+ server: { baseUrl, routes, ssr, ssrByEntries }
112
105
  } = config;
113
- const {
114
- packageName
115
- } = appContext;
116
- let htmlRoutes = entrypoints.reduce((previous, {
117
- entryName
118
- }) => {
119
- const entryOptions = getEntryOptions(entryName, ssr, ssrByEntries, packageName);
120
- const isSSR = Boolean(entryOptions);
121
- const {
122
- resHeaders
123
- } = (routes === null || routes === void 0 ? void 0 : routes[entryName]) || {};
124
- let route = {
125
- urlPath: `/${entryName === MAIN_ENTRY_NAME ? '' : entryName}`,
126
- entryName,
127
- entryPath: removeLeadingSlash(path.posix.normalize(`${htmlPath}/${entryName}${disableHtmlFolder ? '.html' : '/index.html'}`)),
128
- isSPA: true,
129
- isSSR,
130
- responseHeaders: resHeaders,
131
- enableModernMode: Boolean(enableModernMode),
132
- bundle: isSSR ? `${SERVER_BUNDLE_DIRECTORY}/${entryName}.js` : undefined
133
- };
134
- if (routes !== null && routes !== void 0 && routes.hasOwnProperty(entryName)) {
135
- const routeOptions = isPlainObject(routes[entryName]) ? routes[entryName] : {
136
- route: routes[entryName]
106
+ const { packageName } = appContext;
107
+ let htmlRoutes = entrypoints.reduce(
108
+ (previous, { entryName }) => {
109
+ const entryOptions = getEntryOptions(
110
+ entryName,
111
+ ssr,
112
+ ssrByEntries,
113
+ packageName
114
+ );
115
+ const isSSR = Boolean(entryOptions);
116
+ const { resHeaders } = (routes == null ? void 0 : routes[entryName]) || {};
117
+ let route = {
118
+ urlPath: `/${entryName === MAIN_ENTRY_NAME ? "" : entryName}`,
119
+ entryName,
120
+ entryPath: removeLeadingSlash(
121
+ path.posix.normalize(
122
+ `${htmlPath}/${entryName}${disableHtmlFolder ? ".html" : "/index.html"}`
123
+ )
124
+ ),
125
+ isSPA: true,
126
+ isSSR,
127
+ responseHeaders: resHeaders,
128
+ bundle: isSSR ? `${SERVER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0
137
129
  };
138
- route = applyRouteOptions(route, routeOptions);
139
- }
140
- return Array.isArray(route) ? [...previous, ...route] : [...previous, route];
141
- }, []);
130
+ if (routes == null ? void 0 : routes.hasOwnProperty(entryName)) {
131
+ const routeOptions = isPlainObject(routes[entryName]) ? routes[entryName] : { route: routes[entryName] };
132
+ route = applyRouteOptions(route, routeOptions);
133
+ }
134
+ return Array.isArray(route) ? [...previous, ...route] : [...previous, route];
135
+ },
136
+ []
137
+ );
142
138
  htmlRoutes = applyBaseUrl(baseUrl, htmlRoutes);
143
139
  return htmlRoutes;
144
140
  };
145
-
146
- /**
147
- * Collect static public file routes from config/public folder.
148
- * @param appContext - App context info.
149
- * @param config - normalized user config.
150
- * @returns Static public file routes.
151
- */
152
141
  const collectStaticRoutes = (appContext, config) => {
142
+ const { appDirectory } = appContext;
153
143
  const {
154
- appDirectory
155
- } = appContext;
156
- const {
157
- source: {
158
- configDir
159
- },
160
- server: {
161
- publicRoutes = {}
162
- }
144
+ source: { configDir },
145
+ server: { publicRoutes = {} }
163
146
  } = config;
164
- const publicFolder = path.resolve(appDirectory, configDir || '', 'public');
165
- return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map(filePath => {
166
- const urlPath = `${urlJoin(toPosix(filePath).slice(toPosix(publicFolder).length))}`;
147
+ const publicFolder = path.resolve(appDirectory, configDir || "", "public");
148
+ return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map((filePath) => {
149
+ const urlPath = `${urlJoin(
150
+ toPosix(filePath).slice(toPosix(publicFolder).length)
151
+ )}`;
167
152
  return {
168
153
  urlPath: publicRoutes[removeLeadingSlash(urlPath)] || urlPath,
169
154
  isSPA: true,
170
155
  isSSR: false,
171
- entryPath: toPosix(path.relative(path.resolve(appDirectory, configDir || ''), filePath))
156
+ entryPath: toPosix(
157
+ path.relative(
158
+ path.resolve(appDirectory, configDir || ""),
159
+ filePath
160
+ )
161
+ )
172
162
  };
173
163
  }) : [];
174
164
  };
175
- export const getServerRoutes = (entrypoints, {
165
+ const getServerRoutes = (entrypoints, {
176
166
  appContext,
177
167
  config
178
- }) => [...collectHtmlRoutes(entrypoints, appContext, config), ...collectStaticRoutes(appContext, config)];
179
- const toPosix = pathStr => pathStr.split(path.sep).join(path.posix.sep);
168
+ }) => [
169
+ ...collectHtmlRoutes(entrypoints, appContext, config),
170
+ ...collectStaticRoutes(appContext, config)
171
+ ];
172
+ const toPosix = (pathStr) => pathStr.split(path.sep).join(path.posix.sep);
173
+ export {
174
+ getServerRoutes
175
+ };