@modern-js/runtime 2.0.0-beta.0 → 2.0.0-beta.1

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 (204) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist/js/modern/cli/index.js +3 -5
  3. package/dist/js/modern/core/app-config.js +2 -1
  4. package/dist/js/modern/core/compatible.js +63 -46
  5. package/dist/js/modern/core/index.js +3 -2
  6. package/dist/js/modern/core/loader/loaderManager.js +12 -34
  7. package/dist/js/modern/core/loader/useLoader.js +8 -26
  8. package/dist/js/modern/core/plugin.js +6 -28
  9. package/dist/js/modern/document/Body.js +17 -0
  10. package/dist/js/modern/document/DocumentContext.js +6 -0
  11. package/dist/js/modern/document/DocumentStructrueContext.js +7 -0
  12. package/dist/js/modern/document/Head.js +24 -0
  13. package/dist/js/modern/document/Html.js +92 -0
  14. package/dist/js/modern/document/Root.js +31 -0
  15. package/dist/js/modern/document/Scripts.js +10 -0
  16. package/dist/js/modern/document/cli/index.js +130 -0
  17. package/dist/js/modern/document/constants.js +19 -0
  18. package/dist/js/modern/document/index.js +8 -0
  19. package/dist/js/modern/index.js +1 -1
  20. package/dist/js/modern/router/cli/index.js +0 -16
  21. package/dist/js/modern/router/runtime/plugin.js +0 -9
  22. package/dist/js/modern/router/runtime/plugin.node.js +18 -24
  23. package/dist/js/modern/router/runtime/root/index.js +19 -0
  24. package/dist/js/modern/router/runtime/root/load.js +61 -0
  25. package/dist/js/modern/router/runtime/utils.js +16 -35
  26. package/dist/js/modern/router/runtime/withRouter.js +1 -3
  27. package/dist/js/modern/ssr/cli/index.js +2 -23
  28. package/dist/js/modern/ssr/index.js +23 -34
  29. package/dist/js/modern/ssr/index.node.js +0 -13
  30. package/dist/js/modern/ssr/prefetch.js +0 -7
  31. package/dist/js/modern/ssr/react/prerender/index.js +2 -23
  32. package/dist/js/modern/ssr/react/prerender/util.js +2 -17
  33. package/dist/js/modern/ssr/react/withCallback/index.js +0 -1
  34. package/dist/js/modern/ssr/serverRender/helmet.js +12 -20
  35. package/dist/js/modern/ssr/serverRender/index.js +1 -2
  36. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -5
  37. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +45 -11
  38. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +6 -39
  39. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +0 -2
  40. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +26 -15
  41. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +14 -18
  42. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +2 -34
  43. package/dist/js/modern/ssr/serverRender/renderToString/index.js +0 -2
  44. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +0 -10
  45. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +0 -2
  46. package/dist/js/modern/ssr/serverRender/renderToString/template.js +0 -15
  47. package/dist/js/modern/ssr/serverRender/renderToString/type.js +0 -1
  48. package/dist/js/modern/ssr/serverRender/utils.js +2 -6
  49. package/dist/js/modern/ssr/utils.js +0 -11
  50. package/dist/js/modern/state/cli/index.js +0 -10
  51. package/dist/js/modern/state/runtime/plugin.js +1 -14
  52. package/dist/js/node/cli/index.js +3 -13
  53. package/dist/js/node/common.js +0 -2
  54. package/dist/js/node/core/app-config.js +2 -5
  55. package/dist/js/node/core/compatible.js +63 -64
  56. package/dist/js/node/core/index.js +0 -16
  57. package/dist/js/node/core/loader/index.js +0 -2
  58. package/dist/js/node/core/loader/loaderManager.js +12 -37
  59. package/dist/js/node/core/loader/useLoader.js +8 -31
  60. package/dist/js/node/core/plugin.js +5 -34
  61. package/dist/js/node/document/Body.js +26 -0
  62. package/dist/js/node/document/DocumentContext.js +14 -0
  63. package/dist/js/node/document/DocumentStructrueContext.js +15 -0
  64. package/dist/js/node/document/Head.js +33 -0
  65. package/dist/js/node/document/Html.js +98 -0
  66. package/dist/js/node/document/Root.js +41 -0
  67. package/dist/js/node/document/Scripts.js +17 -0
  68. package/dist/js/node/document/cli/index.js +140 -0
  69. package/dist/js/node/document/constants.js +36 -0
  70. package/dist/js/node/document/index.js +93 -0
  71. package/dist/js/node/exports/head.js +0 -5
  72. package/dist/js/node/exports/loadable.js +0 -5
  73. package/dist/js/node/exports/server.js +0 -2
  74. package/dist/js/node/exports/styled.js +0 -5
  75. package/dist/js/node/index.js +0 -8
  76. package/dist/js/node/router/cli/index.js +0 -20
  77. package/dist/js/node/router/index.js +0 -4
  78. package/dist/js/node/router/runtime/DefaultNotFound.js +1 -5
  79. package/dist/js/node/router/runtime/index.js +0 -5
  80. package/dist/js/node/router/runtime/plugin.js +0 -17
  81. package/dist/js/node/router/runtime/plugin.node.js +16 -38
  82. package/dist/js/node/router/runtime/root/index.js +26 -0
  83. package/dist/js/node/router/runtime/root/load.js +69 -0
  84. package/dist/js/node/router/runtime/utils.js +16 -44
  85. package/dist/js/node/router/runtime/withRouter.js +0 -9
  86. package/dist/js/node/runtime-context.js +0 -2
  87. package/dist/js/node/ssr/cli/index.js +2 -26
  88. package/dist/js/node/ssr/index.js +23 -45
  89. package/dist/js/node/ssr/index.node.js +0 -23
  90. package/dist/js/node/ssr/prefetch.js +0 -11
  91. package/dist/js/node/ssr/react/index.js +0 -2
  92. package/dist/js/node/ssr/react/nossr/index.js +0 -6
  93. package/dist/js/node/ssr/react/prerender/index.js +2 -30
  94. package/dist/js/node/ssr/react/prerender/util.js +2 -25
  95. package/dist/js/node/ssr/react/withCallback/index.js +1 -4
  96. package/dist/js/node/ssr/serverRender/helmet.js +13 -20
  97. package/dist/js/node/ssr/serverRender/index.js +1 -4
  98. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -9
  99. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -1
  100. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +43 -15
  101. package/dist/js/node/ssr/serverRender/renderToStream/index.js +6 -48
  102. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +0 -4
  103. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +26 -17
  104. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +0 -2
  105. package/dist/js/node/ssr/serverRender/renderToStream/template.js +16 -23
  106. package/dist/js/node/ssr/serverRender/renderToString/entry.js +2 -51
  107. package/dist/js/node/ssr/serverRender/renderToString/index.js +0 -10
  108. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +0 -14
  109. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +0 -3
  110. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +0 -3
  111. package/dist/js/node/ssr/serverRender/renderToString/template.js +0 -18
  112. package/dist/js/node/ssr/serverRender/renderToString/type.js +0 -1
  113. package/dist/js/node/ssr/serverRender/types.js +0 -1
  114. package/dist/js/node/ssr/serverRender/utils.js +2 -8
  115. package/dist/js/node/ssr/utils.js +0 -20
  116. package/dist/js/node/state/cli/index.js +0 -15
  117. package/dist/js/node/state/index.js +0 -4
  118. package/dist/js/node/state/plugins.js +0 -11
  119. package/dist/js/node/state/runtime/index.js +0 -7
  120. package/dist/js/node/state/runtime/plugin.js +1 -25
  121. package/dist/js/treeshaking/cli/index.js +3 -3
  122. package/dist/js/treeshaking/core/app-config.js +2 -1
  123. package/dist/js/treeshaking/core/compatible.js +66 -63
  124. package/dist/js/treeshaking/core/index.js +3 -2
  125. package/dist/js/treeshaking/core/loader/loaderManager.js +19 -51
  126. package/dist/js/treeshaking/core/loader/useLoader.js +11 -28
  127. package/dist/js/treeshaking/core/plugin.js +6 -51
  128. package/dist/js/treeshaking/document/Body.js +14 -0
  129. package/dist/js/treeshaking/document/DocumentContext.js +6 -0
  130. package/dist/js/treeshaking/document/DocumentStructrueContext.js +7 -0
  131. package/dist/js/treeshaking/document/Head.js +21 -0
  132. package/dist/js/treeshaking/document/Html.js +104 -0
  133. package/dist/js/treeshaking/document/Root.js +24 -0
  134. package/dist/js/treeshaking/document/Scripts.js +10 -0
  135. package/dist/js/treeshaking/document/cli/index.js +170 -0
  136. package/dist/js/treeshaking/document/constants.js +16 -0
  137. package/dist/js/treeshaking/document/index.js +8 -0
  138. package/dist/js/treeshaking/index.js +1 -1
  139. package/dist/js/treeshaking/router/cli/index.js +6 -18
  140. package/dist/js/treeshaking/router/runtime/plugin.js +5 -13
  141. package/dist/js/treeshaking/router/runtime/plugin.node.js +23 -36
  142. package/dist/js/treeshaking/router/runtime/root/index.js +17 -0
  143. package/dist/js/treeshaking/router/runtime/root/load.js +102 -0
  144. package/dist/js/treeshaking/router/runtime/utils.js +21 -39
  145. package/dist/js/treeshaking/router/runtime/withRouter.js +1 -0
  146. package/dist/js/treeshaking/ssr/cli/index.js +9 -31
  147. package/dist/js/treeshaking/ssr/index.js +26 -40
  148. package/dist/js/treeshaking/ssr/index.node.js +12 -29
  149. package/dist/js/treeshaking/ssr/prefetch.js +0 -13
  150. package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -4
  151. package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -21
  152. package/dist/js/treeshaking/ssr/react/prerender/util.js +3 -20
  153. package/dist/js/treeshaking/ssr/react/withCallback/index.js +1 -2
  154. package/dist/js/treeshaking/ssr/serverRender/helmet.js +12 -11
  155. package/dist/js/treeshaking/ssr/serverRender/index.js +1 -9
  156. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -6
  157. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +46 -15
  158. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +9 -79
  159. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +3 -5
  160. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +46 -35
  161. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +17 -24
  162. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +20 -73
  163. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +2 -6
  164. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +5 -16
  165. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +0 -2
  166. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +2 -18
  167. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +0 -1
  168. package/dist/js/treeshaking/ssr/serverRender/utils.js +5 -10
  169. package/dist/js/treeshaking/ssr/utils.js +8 -17
  170. package/dist/js/treeshaking/state/cli/index.js +3 -10
  171. package/dist/js/treeshaking/state/runtime/plugin.js +2 -10
  172. package/dist/types/cli/index.d.ts +0 -2
  173. package/dist/types/core/compatible.d.ts +5 -5
  174. package/dist/types/core/index.d.ts +1 -1
  175. package/dist/types/core/loader/loaderManager.d.ts +0 -1
  176. package/dist/types/core/loader/useLoader.d.ts +0 -5
  177. package/dist/types/core/plugin.d.ts +1 -13
  178. package/dist/types/document/Body.d.ts +4 -0
  179. package/dist/types/document/DocumentContext.d.ts +13 -0
  180. package/dist/types/document/DocumentStructrueContext.d.ts +10 -0
  181. package/dist/types/document/Head.d.ts +5 -0
  182. package/dist/types/document/Html.d.ts +4 -0
  183. package/dist/types/document/Root.d.ts +8 -0
  184. package/dist/types/document/Scripts.d.ts +2 -0
  185. package/dist/types/document/cli/index.d.ts +3 -0
  186. package/dist/types/document/constants.d.ts +14 -0
  187. package/dist/types/document/index.d.ts +8 -0
  188. package/dist/types/exports/server.d.ts +3 -3
  189. package/dist/types/index.d.ts +1 -1
  190. package/dist/types/router/cli/index.d.ts +0 -2
  191. package/dist/types/router/runtime/root/index.d.ts +8 -0
  192. package/dist/types/router/runtime/root/load.d.ts +22 -0
  193. package/dist/types/router/runtime/types.d.ts +0 -2
  194. package/dist/types/runtime-context.d.ts +1 -0
  195. package/dist/types/ssr/cli/index.d.ts +0 -2
  196. package/dist/types/ssr/prefetch.d.ts +2 -2
  197. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +3 -2
  198. package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -1
  199. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +3 -3
  200. package/dist/types/ssr/serverRender/renderToStream/template.d.ts +2 -2
  201. package/dist/types/ssr/serverRender/types.d.ts +1 -4
  202. package/dist/types/state/cli/index.d.ts +0 -2
  203. package/dist/types/state/types.d.ts +0 -1
  204. package/package.json +19 -11
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  var _exportNames = {};
7
7
  exports.default = void 0;
8
-
9
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
10
-
11
9
  Object.keys(_styledComponents).forEach(function (key) {
12
10
  if (key === "default" || key === "__esModule") return;
13
11
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -19,10 +17,7 @@ Object.keys(_styledComponents).forEach(function (key) {
19
17
  }
20
18
  });
21
19
  });
22
-
23
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
-
25
21
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
-
27
22
  var _default = _styledComponents.default;
28
23
  exports.default = _default;
@@ -45,12 +45,6 @@ Object.defineProperty(exports, "registerInit", {
45
45
  return _core.registerInit;
46
46
  }
47
47
  });
48
- Object.defineProperty(exports, "registerPrefetch", {
49
- enumerable: true,
50
- get: function () {
51
- return _core.registerPrefetch;
52
- }
53
- });
54
48
  Object.defineProperty(exports, "useLoader", {
55
49
  enumerable: true,
56
50
  get: function () {
@@ -63,7 +57,5 @@ Object.defineProperty(exports, "useRuntimeContext", {
63
57
  return _core.useRuntimeContext;
64
58
  }
65
59
  });
66
-
67
60
  var _common = require("./common");
68
-
69
61
  var _core = require("./core");
@@ -4,18 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("@modern-js/utils");
9
-
10
8
  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; }
11
-
12
9
  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; }
13
-
14
10
  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; }
15
-
16
11
  const PLUGIN_IDENTIFIER = 'router';
17
12
  const ROUTES_IDENTIFIER = 'routes';
18
-
19
13
  var _default = () => ({
20
14
  name: '@modern-js/plugin-router',
21
15
  required: ['@modern-js/runtime'],
@@ -34,17 +28,14 @@ var _default = () => ({
34
28
  }
35
29
  };
36
30
  },
37
-
38
31
  validateSchema() {
39
32
  return _utils.PLUGIN_SCHEMAS['@modern-js/plugin-router'];
40
33
  },
41
-
42
34
  modifyEntryImports({
43
35
  entrypoint,
44
36
  imports
45
37
  }) {
46
38
  var _userConfig$runtime, _userConfig$runtime$r;
47
-
48
39
  const {
49
40
  entryName,
50
41
  fileSystemRoutes
@@ -56,7 +47,6 @@ var _default = () => ({
56
47
  } = api.useAppContext();
57
48
  const runtimeConfig = (0, _utils.getEntryOptions)(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
58
49
  runtimeConfigMap.set(entryName, runtimeConfig);
59
-
60
50
  if (runtimeConfig !== null && runtimeConfig !== void 0 && runtimeConfig.router) {
61
51
  if (!isLegacy) {
62
52
  imports.push({
@@ -69,19 +59,16 @@ var _default = () => ({
69
59
  } else if (fileSystemRoutes) {
70
60
  throw new Error(`should enable runtime.router for entry ${entryName}`);
71
61
  }
72
-
73
62
  return {
74
63
  entrypoint,
75
64
  imports
76
65
  };
77
66
  },
78
-
79
67
  modifyEntryRuntimePlugins({
80
68
  entrypoint,
81
69
  plugins
82
70
  }) {
83
71
  var _userConfig$runtime2, _userConfig$runtime2$;
84
-
85
72
  const {
86
73
  entryName,
87
74
  fileSystemRoutes
@@ -92,7 +79,6 @@ var _default = () => ({
92
79
  const userConfig = api.useResolvedConfigContext();
93
80
  const isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$runtime2 = userConfig.runtime) === null || _userConfig$runtime2 === void 0 ? void 0 : (_userConfig$runtime2$ = _userConfig$runtime2.router) === null || _userConfig$runtime2$ === void 0 ? void 0 : _userConfig$runtime2$.legacy);
94
81
  const runtimeConfig = runtimeConfigMap.get(entryName);
95
-
96
82
  if (runtimeConfig.router && !isLegacy) {
97
83
  // Todo: plugin-router best to only handle manage client route.
98
84
  // here support base server route usage, part for compatibility
@@ -106,26 +92,20 @@ var _default = () => ({
106
92
  })).replace(/"routesConfig"\s*:\s*"((\S|\s)+)"/g, '"routesConfig": $1,')
107
93
  });
108
94
  }
109
-
110
95
  return {
111
96
  entrypoint,
112
97
  plugins
113
98
  };
114
99
  },
115
-
116
100
  addRuntimeExports() {
117
101
  var _userConfig$runtime3, _userConfig$runtime3$;
118
-
119
102
  const userConfig = api.useResolvedConfigContext();
120
103
  const isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$runtime3 = userConfig.runtime) === null || _userConfig$runtime3 === void 0 ? void 0 : (_userConfig$runtime3$ = _userConfig$runtime3.router) === null || _userConfig$runtime3$ === void 0 ? void 0 : _userConfig$runtime3$.legacy);
121
-
122
104
  if (!isLegacy) {
123
105
  pluginsExportsUtils.addExport(`export { default as router } from '@modern-js/runtime/router'`);
124
106
  }
125
107
  }
126
-
127
108
  };
128
109
  }
129
110
  });
130
-
131
111
  exports.default = _default;
@@ -18,9 +18,7 @@ Object.defineProperty(exports, "router", {
18
18
  return _runtime.default;
19
19
  }
20
20
  });
21
-
22
21
  var _runtime = _interopRequireWildcard(require("./runtime"));
23
-
24
22
  Object.keys(_runtime).forEach(function (key) {
25
23
  if (key === "default" || key === "__esModule") return;
26
24
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -32,7 +30,5 @@ Object.keys(_runtime).forEach(function (key) {
32
30
  }
33
31
  });
34
32
  });
35
-
36
33
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
-
38
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.DefaultNotFound = void 0;
7
-
8
7
  var _react = _interopRequireDefault(require("react"));
9
-
10
8
  var _jsxRuntime = require("react/jsx-runtime");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
+
15
12
  const DefaultNotFound = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
16
13
  style: {
17
14
  margin: '150px auto',
@@ -22,5 +19,4 @@ const DefaultNotFound = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
22
19
  },
23
20
  children: "404"
24
21
  });
25
-
26
22
  exports.DefaultNotFound = DefaultNotFound;
@@ -5,11 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  var _exportNames = {};
7
7
  exports.default = void 0;
8
-
9
8
  var _plugin = require("./plugin");
10
-
11
9
  var _reactRouterDom = require("react-router-dom");
12
-
13
10
  Object.keys(_reactRouterDom).forEach(function (key) {
14
11
  if (key === "default" || key === "__esModule") return;
15
12
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -21,9 +18,7 @@ Object.keys(_reactRouterDom).forEach(function (key) {
21
18
  }
22
19
  });
23
20
  });
24
-
25
21
  var _withRouter = require("./withRouter");
26
-
27
22
  Object.keys(_withRouter).forEach(function (key) {
28
23
  if (key === "default" || key === "__esModule") return;
29
24
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -4,25 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.routerPlugin = void 0;
7
-
8
7
  var _react = _interopRequireDefault(require("react"));
9
-
10
8
  var _reactRouterDom = require("react-router-dom");
11
-
12
9
  var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
13
-
14
10
  var _utils = require("./utils");
15
-
16
11
  var _jsxRuntime = require("react/jsx-runtime");
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
13
  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; }
21
-
22
14
  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; }
23
-
24
15
  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; }
25
-
26
16
  const routerPlugin = ({
27
17
  serverBase: _serverBase = [],
28
18
  supportHtml5History: _supportHtml5History = true,
@@ -30,7 +20,6 @@ const routerPlugin = ({
30
20
  createRoutes
31
21
  }) => {
32
22
  const select = pathname => _serverBase.find(baseUrl => pathname.search(baseUrl) === 0) || '/';
33
-
34
23
  return {
35
24
  name: '@modern-js/plugin-router',
36
25
  setup: () => {
@@ -45,11 +34,9 @@ const routerPlugin = ({
45
34
  App
46
35
  });
47
36
  }
48
-
49
37
  const getRouteApp = () => {
50
38
  return props => {
51
39
  var _window$_SERVER_DATA;
52
-
53
40
  const routeElements = (0, _utils.renderRoutes)(routesConfig);
54
41
  const routes = createRoutes ? createRoutes() : (0, _reactRouterDom.createRoutesFromElements)(routeElements);
55
42
  const baseUrl = ((_window$_SERVER_DATA = window._SERVER_DATA) === null || _window$_SERVER_DATA === void 0 ? void 0 : _window$_SERVER_DATA.router.baseUrl) || select(location.pathname);
@@ -65,15 +52,12 @@ const routerPlugin = ({
65
52
  }));
66
53
  };
67
54
  };
68
-
69
55
  const RouteApp = getRouteApp();
70
-
71
56
  if (routesConfig.globalApp) {
72
57
  return next({
73
58
  App: (0, _hoistNonReactStatics.default)(RouteApp, routesConfig.globalApp)
74
59
  });
75
60
  }
76
-
77
61
  return next({
78
62
  App: RouteApp
79
63
  });
@@ -82,5 +66,4 @@ const routerPlugin = ({
82
66
  }
83
67
  };
84
68
  };
85
-
86
69
  exports.routerPlugin = routerPlugin;
@@ -5,46 +5,33 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createFetchHeaders = createFetchHeaders;
7
7
  exports.routerPlugin = void 0;
8
-
9
8
  var _react = _interopRequireWildcard(require("react"));
10
-
11
9
  var _router = require("@remix-run/router");
12
-
13
10
  var _server = require("react-router-dom/server");
14
-
15
11
  var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
16
-
17
12
  var _node = require("@remix-run/node");
18
-
19
13
  var _reactRouterDom = require("react-router-dom");
20
-
21
14
  var _core = require("../../core");
22
-
23
15
  var _utils = require("./utils");
24
-
25
16
  var _jsxRuntime = require("react/jsx-runtime");
26
-
27
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
-
29
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
-
31
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
32
-
33
20
  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; }
34
-
35
21
  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; }
36
-
37
22
  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; }
38
-
39
23
  // Polyfill Web Fetch API
40
- (0, _node.installGlobals)(); // TODO: polish
24
+ (0, _node.installGlobals)();
41
25
 
26
+ // TODO: polish
42
27
  function createFetchRequest(req) {
43
28
  // const origin = `${req.protocol}://${req.get('host')}`;
44
- const origin = `${req.protocol}://${req.host}`; // Note: This had to take originalUrl into account for presumably vite's proxying
45
-
29
+ const origin = `${req.protocol}://${req.host}`;
30
+ // Note: This had to take originalUrl into account for presumably vite's proxying
46
31
  const url = new URL(req.originalUrl || req.url, origin);
47
- const controller = new AbortController(); // req.on('close', () => {
32
+ const controller = new AbortController();
33
+
34
+ // req.on('close', () => {
48
35
  // controller.abort();
49
36
  // });
50
37
 
@@ -52,16 +39,16 @@ function createFetchRequest(req) {
52
39
  method: req.method,
53
40
  headers: createFetchHeaders(req.headers),
54
41
  signal: controller.signal
55
- }; // if (req.method !== 'GET' && req.method !== 'HEAD') {
42
+ };
43
+
44
+ // if (req.method !== 'GET' && req.method !== 'HEAD') {
56
45
  // init.body = req.body;
57
46
  // }
58
47
 
59
48
  return new Request(url.href, init);
60
49
  }
61
-
62
50
  function createFetchHeaders(requestHeaders) {
63
51
  const headers = new Headers();
64
-
65
52
  for (const [key, values] of Object.entries(requestHeaders)) {
66
53
  if (values) {
67
54
  if (Array.isArray(values)) {
@@ -73,10 +60,8 @@ function createFetchHeaders(requestHeaders) {
73
60
  }
74
61
  }
75
62
  }
76
-
77
63
  return headers;
78
64
  }
79
-
80
65
  const routerPlugin = ({
81
66
  routesConfig,
82
67
  createRoutes
@@ -95,7 +80,6 @@ const routerPlugin = ({
95
80
  context
96
81
  });
97
82
  }
98
-
99
83
  const {
100
84
  request
101
85
  } = context.ssrContext;
@@ -106,22 +90,21 @@ const routerPlugin = ({
106
90
  } = (0, _router.unstable_createStaticHandler)(routes);
107
91
  const remixRequest = createFetchRequest(request);
108
92
  const routerContext = await query(remixRequest);
109
-
110
93
  if (routerContext instanceof Response) {
111
- // TODO: resolve repsonse ?
112
- return next({
113
- context
114
- });
94
+ // React Router would return a Response when redirects occur in loader.
95
+ // Throw the Response to bail out and let the server handle it with an HTTP redirect
96
+ return routerContext;
115
97
  }
116
-
117
98
  const router = (0, _server.unstable_createStaticRouter)(routes, routerContext);
118
99
  context.router = router;
119
100
  context.routerContext = routerContext;
101
+ context.routes = routes;
102
+ // set routeManifest in context to be consistent with csr context
103
+ context.routeManifest = context.ssrContext.routeManifest;
120
104
  return next({
121
105
  context
122
106
  });
123
107
  },
124
-
125
108
  hoc: ({
126
109
  App
127
110
  }, next) => {
@@ -132,7 +115,6 @@ const routerPlugin = ({
132
115
  App
133
116
  });
134
117
  }
135
-
136
118
  const getRouteApp = () => {
137
119
  return props => {
138
120
  const {
@@ -148,15 +130,12 @@ const routerPlugin = ({
148
130
  }));
149
131
  };
150
132
  };
151
-
152
133
  const RouteApp = getRouteApp();
153
-
154
134
  if (routesConfig.globalApp) {
155
135
  return next({
156
136
  App: (0, _hoistNonReactStatics.default)(RouteApp, routesConfig.globalApp)
157
137
  });
158
138
  }
159
-
160
139
  return next({
161
140
  App: RouteApp
162
141
  });
@@ -165,5 +144,4 @@ const routerPlugin = ({
165
144
  }
166
145
  };
167
146
  };
168
-
169
147
  exports.routerPlugin = routerPlugin;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RootLayout = RootLayout;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactRouterDom = require("react-router-dom");
9
+ var _core = require("../../../core");
10
+ var _load = require("./load");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ function RootLayout(props) {
15
+ const location = (0, _reactRouterDom.useLocation)();
16
+ const context = (0, _react.useContext)(_core.RuntimeReactContext);
17
+ (0, _react.useEffect)(() => {
18
+ const {
19
+ routes
20
+ } = props;
21
+ (0, _load.handleLoad)(routes, location, context.routeManifest);
22
+ }, [location]);
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
24
+ children: props.children
25
+ });
26
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleLoad = handleLoad;
7
+ exports.loadRouteModule = loadRouteModule;
8
+ exports.matchClientRoutes = matchClientRoutes;
9
+ var _reactRouterDom = require("react-router-dom");
10
+ 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; }
11
+ class Logger {
12
+ static getLogger(options) {
13
+ if (this.logger) {
14
+ return this.logger;
15
+ }
16
+ this.logger = new Logger(options);
17
+ return this.logger;
18
+ }
19
+ constructor(options) {
20
+ _defineProperty(this, "enableLogging", void 0);
21
+ this.enableLogging = options.enableLogging;
22
+ }
23
+ log(...args) {
24
+ if (this.enableLogging) {
25
+ // eslint-disable-next-line no-console
26
+ console.log(...args);
27
+ }
28
+ }
29
+ }
30
+ _defineProperty(Logger, "logger", void 0);
31
+ function handleLoad(routes, location, routeManifest) {
32
+ if (!routeManifest || !routeManifest.enableFetchParallel === false) {
33
+ return;
34
+ }
35
+ const {
36
+ routeAssets
37
+ } = routeManifest;
38
+ Logger.getLogger({
39
+ enableLogging: routeManifest.enableLogging
40
+ }).log('handle page load');
41
+ const matches = matchClientRoutes(routes, location);
42
+ matches === null || matches === void 0 ? void 0 : matches.forEach(match => loadRouteModule(match.route, routeAssets));
43
+ }
44
+ function matchClientRoutes(routes, location) {
45
+ const matches = (0, _reactRouterDom.matchRoutes)(routes, location);
46
+ return matches;
47
+ }
48
+ async function loadRouteModule(route, routeAssets) {
49
+ const routeId = route.id;
50
+ if (!routeId) {
51
+ return;
52
+ }
53
+ if (!routeAssets[routeId]) {
54
+ return;
55
+ }
56
+ const {
57
+ chunkIds
58
+ } = routeAssets[routeId];
59
+ if (!chunkIds) {
60
+ return;
61
+ }
62
+ try {
63
+ await Promise.all(chunkIds.map(chunkId => {
64
+ return __webpack_chunk_load__(String(chunkId));
65
+ }));
66
+ } catch (error) {
67
+ console.error(error);
68
+ }
69
+ }