@modern-js/runtime 2.0.0-beta.3 → 2.0.0-beta.5

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 (258) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/dist/js/modern/cli/index.js +49 -19
  3. package/dist/js/modern/cli/types.d.js +0 -0
  4. package/dist/js/modern/common.js +4 -1
  5. package/dist/js/modern/core/app-config.js +8 -9
  6. package/dist/js/modern/core/compatible.js +195 -169
  7. package/dist/js/modern/core/index.js +14 -6
  8. package/dist/js/modern/core/loader/index.js +4 -1
  9. package/dist/js/modern/core/loader/loaderManager.js +75 -77
  10. package/dist/js/modern/core/loader/useLoader.js +96 -69
  11. package/dist/js/modern/core/plugin.js +37 -20
  12. package/dist/js/modern/document/Body.js +20 -14
  13. package/dist/js/modern/document/DocumentContext.js +6 -3
  14. package/dist/js/modern/document/DocumentStructrueContext.js +6 -3
  15. package/dist/js/modern/document/Head.js +18 -17
  16. package/dist/js/modern/document/Html.js +42 -58
  17. package/dist/js/modern/document/Root.js +22 -20
  18. package/dist/js/modern/document/Script.js +20 -0
  19. package/dist/js/modern/document/Scripts.js +7 -7
  20. package/dist/js/modern/document/cli/index.js +175 -85
  21. package/dist/js/modern/document/constants.js +41 -15
  22. package/dist/js/modern/document/index.js +2 -1
  23. package/dist/js/modern/document/type.d.js +0 -0
  24. package/dist/js/modern/exports/head.js +6 -3
  25. package/dist/js/modern/exports/loadable.js +6 -3
  26. package/dist/js/modern/exports/server.js +4 -1
  27. package/dist/js/modern/exports/styled.js +6 -3
  28. package/dist/js/modern/index.js +22 -2
  29. package/dist/js/modern/modern-app.env.d.js +0 -0
  30. package/dist/js/modern/router/cli/index.js +76 -60
  31. package/dist/js/modern/router/index.js +7 -3
  32. package/dist/js/modern/router/runtime/DefaultNotFound.js +11 -10
  33. package/dist/js/modern/router/runtime/index.js +8 -3
  34. package/dist/js/modern/router/runtime/plugin.js +79 -37
  35. package/dist/js/modern/router/runtime/plugin.node.js +88 -83
  36. package/dist/js/modern/router/runtime/root/index.js +10 -10
  37. package/dist/js/modern/router/runtime/root/load.js +57 -36
  38. package/dist/js/modern/router/runtime/server.js +1 -1
  39. package/dist/js/modern/router/runtime/types.js +0 -1
  40. package/dist/js/modern/router/runtime/utils.js +91 -66
  41. package/dist/js/modern/router/runtime/withRouter.js +31 -15
  42. package/dist/js/modern/runtime-context.js +7 -3
  43. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  44. package/dist/js/modern/ssr/cli/index.js +102 -79
  45. package/dist/js/modern/ssr/index.js +89 -71
  46. package/dist/js/modern/ssr/index.node.js +59 -37
  47. package/dist/js/modern/ssr/prefetch.js +64 -45
  48. package/dist/js/modern/ssr/react/index.js +6 -2
  49. package/dist/js/modern/ssr/react/nossr/index.js +8 -7
  50. package/dist/js/modern/ssr/react/prerender/index.js +53 -28
  51. package/dist/js/modern/ssr/react/prerender/util.js +38 -26
  52. package/dist/js/modern/ssr/react/withCallback/index.js +6 -7
  53. package/dist/js/modern/ssr/serverRender/helmet.js +18 -12
  54. package/dist/js/modern/ssr/serverRender/index.js +34 -13
  55. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -12
  56. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -5
  57. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +37 -38
  58. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +36 -18
  59. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +7 -7
  60. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +56 -34
  61. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +6 -5
  62. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +13 -9
  63. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +101 -84
  64. package/dist/js/modern/ssr/serverRender/renderToString/index.js +32 -9
  65. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +21 -18
  66. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +6 -3
  67. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +6 -3
  68. package/dist/js/modern/ssr/serverRender/renderToString/template.js +22 -22
  69. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -6
  70. package/dist/js/modern/ssr/serverRender/types.js +3 -1
  71. package/dist/js/modern/ssr/serverRender/utils.js +11 -9
  72. package/dist/js/modern/ssr/type.d.js +0 -0
  73. package/dist/js/modern/ssr/utils.js +41 -21
  74. package/dist/js/modern/state/cli/index.js +43 -32
  75. package/dist/js/modern/state/index.js +7 -3
  76. package/dist/js/modern/state/plugins.js +13 -7
  77. package/dist/js/modern/state/runtime/index.js +9 -4
  78. package/dist/js/modern/state/runtime/plugin.js +56 -40
  79. package/dist/js/modern/state/types.js +0 -1
  80. package/dist/js/node/cli/index.js +79 -30
  81. package/dist/js/node/cli/types.d.js +0 -0
  82. package/dist/js/node/common.js +26 -7
  83. package/dist/js/node/core/app-config.js +29 -14
  84. package/dist/js/node/core/compatible.js +227 -186
  85. package/dist/js/node/core/index.js +44 -99
  86. package/dist/js/node/core/loader/index.js +31 -11
  87. package/dist/js/node/core/loader/loaderManager.js +102 -83
  88. package/dist/js/node/core/loader/useLoader.js +120 -83
  89. package/dist/js/node/core/plugin.js +65 -35
  90. package/dist/js/node/document/Body.js +40 -23
  91. package/dist/js/node/document/DocumentContext.js +33 -9
  92. package/dist/js/node/document/DocumentStructrueContext.js +33 -9
  93. package/dist/js/node/document/Head.js +43 -27
  94. package/dist/js/node/document/Html.js +66 -65
  95. package/dist/js/node/document/Root.js +47 -31
  96. package/dist/js/node/document/Script.js +40 -0
  97. package/dist/js/node/document/Scripts.js +30 -14
  98. package/dist/js/node/document/cli/index.js +188 -95
  99. package/dist/js/node/document/constants.js +73 -28
  100. package/dist/js/node/document/index.js +25 -93
  101. package/dist/js/node/document/type.d.js +0 -0
  102. package/dist/js/node/exports/head.js +33 -22
  103. package/dist/js/node/exports/loadable.js +33 -22
  104. package/dist/js/node/exports/server.js +26 -7
  105. package/dist/js/node/exports/styled.js +33 -22
  106. package/dist/js/node/index.js +43 -60
  107. package/dist/js/node/modern-app.env.d.js +0 -0
  108. package/dist/js/node/router/cli/index.js +89 -65
  109. package/dist/js/node/router/index.js +33 -30
  110. package/dist/js/node/router/runtime/DefaultNotFound.js +32 -17
  111. package/dist/js/node/router/runtime/index.js +31 -32
  112. package/dist/js/node/router/runtime/plugin.js +101 -44
  113. package/dist/js/node/router/runtime/plugin.node.js +113 -93
  114. package/dist/js/node/router/runtime/root/index.js +37 -21
  115. package/dist/js/node/router/runtime/root/load.js +80 -42
  116. package/dist/js/node/router/runtime/server.js +17 -16
  117. package/dist/js/node/router/runtime/types.js +15 -5
  118. package/dist/js/node/router/runtime/utils.js +112 -75
  119. package/dist/js/node/router/runtime/withRouter.js +53 -22
  120. package/dist/js/node/runtime-context.js +30 -10
  121. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  122. package/dist/js/node/ssr/cli/index.js +119 -85
  123. package/dist/js/node/ssr/index.js +125 -104
  124. package/dist/js/node/ssr/index.node.js +86 -59
  125. package/dist/js/node/ssr/prefetch.js +84 -51
  126. package/dist/js/node/ssr/react/index.js +27 -16
  127. package/dist/js/node/ssr/react/nossr/index.js +37 -16
  128. package/dist/js/node/ssr/react/prerender/index.js +82 -45
  129. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  130. package/dist/js/node/ssr/react/prerender/util.js +63 -36
  131. package/dist/js/node/ssr/react/withCallback/index.js +29 -15
  132. package/dist/js/node/ssr/serverRender/helmet.js +37 -17
  133. package/dist/js/node/ssr/serverRender/index.js +55 -19
  134. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +40 -20
  135. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +32 -10
  136. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -47
  137. package/dist/js/node/ssr/serverRender/renderToStream/index.js +69 -30
  138. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +29 -12
  139. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
  140. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +29 -11
  141. package/dist/js/node/ssr/serverRender/renderToStream/template.js +36 -16
  142. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  143. package/dist/js/node/ssr/serverRender/renderToString/entry.js +135 -103
  144. package/dist/js/node/ssr/serverRender/renderToString/index.js +64 -20
  145. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +45 -26
  146. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +27 -7
  147. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +27 -8
  148. package/dist/js/node/ssr/serverRender/renderToString/template.js +44 -28
  149. package/dist/js/node/ssr/serverRender/renderToString/type.js +31 -12
  150. package/dist/js/node/ssr/serverRender/types.js +25 -10
  151. package/dist/js/node/ssr/serverRender/utils.js +31 -13
  152. package/dist/js/node/ssr/type.d.js +0 -0
  153. package/dist/js/node/ssr/utils.js +63 -29
  154. package/dist/js/node/state/cli/index.js +58 -37
  155. package/dist/js/node/state/index.js +33 -30
  156. package/dist/js/node/state/plugins.js +43 -22
  157. package/dist/js/node/state/runtime/index.js +36 -50
  158. package/dist/js/node/state/runtime/plugin.js +89 -68
  159. package/dist/js/node/state/types.js +15 -5
  160. package/dist/js/treeshaking/cli/index.js +180 -52
  161. package/dist/js/treeshaking/cli/types.d.js +1 -0
  162. package/dist/js/treeshaking/common.js +4 -3
  163. package/dist/js/treeshaking/core/app-config.js +8 -13
  164. package/dist/js/treeshaking/core/compatible.js +473 -276
  165. package/dist/js/treeshaking/core/index.js +5 -6
  166. package/dist/js/treeshaking/core/loader/index.js +2 -1
  167. package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
  168. package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
  169. package/dist/js/treeshaking/core/plugin.js +164 -48
  170. package/dist/js/treeshaking/document/Body.js +15 -11
  171. package/dist/js/treeshaking/document/DocumentContext.js +7 -6
  172. package/dist/js/treeshaking/document/DocumentStructrueContext.js +8 -7
  173. package/dist/js/treeshaking/document/Head.js +18 -17
  174. package/dist/js/treeshaking/document/Html.js +86 -93
  175. package/dist/js/treeshaking/document/Root.js +23 -21
  176. package/dist/js/treeshaking/document/Script.js +15 -0
  177. package/dist/js/treeshaking/document/Scripts.js +7 -9
  178. package/dist/js/treeshaking/document/cli/index.js +381 -168
  179. package/dist/js/treeshaking/document/constants.js +34 -16
  180. package/dist/js/treeshaking/document/index.js +2 -1
  181. package/dist/js/treeshaking/document/type.d.js +1 -0
  182. package/dist/js/treeshaking/exports/head.js +4 -3
  183. package/dist/js/treeshaking/exports/loadable.js +4 -3
  184. package/dist/js/treeshaking/exports/server.js +4 -3
  185. package/dist/js/treeshaking/exports/styled.js +4 -3
  186. package/dist/js/treeshaking/index.js +3 -2
  187. package/dist/js/treeshaking/modern-app.env.d.js +1 -0
  188. package/dist/js/treeshaking/router/cli/index.js +145 -99
  189. package/dist/js/treeshaking/router/index.js +4 -3
  190. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
  191. package/dist/js/treeshaking/router/runtime/index.js +5 -3
  192. package/dist/js/treeshaking/router/runtime/plugin.js +129 -62
  193. package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
  194. package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
  195. package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
  196. package/dist/js/treeshaking/router/runtime/server.js +1 -1
  197. package/dist/js/treeshaking/router/runtime/types.js +1 -1
  198. package/dist/js/treeshaking/router/runtime/utils.js +230 -142
  199. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
  200. package/dist/js/treeshaking/runtime-context.js +4 -3
  201. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  202. package/dist/js/treeshaking/ssr/cli/index.js +210 -138
  203. package/dist/js/treeshaking/ssr/index.js +305 -144
  204. package/dist/js/treeshaking/ssr/index.node.js +234 -66
  205. package/dist/js/treeshaking/ssr/prefetch.js +196 -79
  206. package/dist/js/treeshaking/ssr/react/index.js +3 -2
  207. package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
  208. package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
  209. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  210. package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
  211. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
  212. package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
  213. package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +109 -58
  217. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
  218. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
  219. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
  221. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
  222. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
  224. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
  225. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
  226. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
  227. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
  228. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
  229. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
  230. package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
  231. package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
  232. package/dist/js/treeshaking/ssr/type.d.js +1 -0
  233. package/dist/js/treeshaking/ssr/utils.js +128 -64
  234. package/dist/js/treeshaking/state/cli/index.js +70 -68
  235. package/dist/js/treeshaking/state/index.js +4 -3
  236. package/dist/js/treeshaking/state/plugins.js +12 -11
  237. package/dist/js/treeshaking/state/runtime/index.js +5 -4
  238. package/dist/js/treeshaking/state/runtime/plugin.js +189 -77
  239. package/dist/js/treeshaking/state/types.js +1 -1
  240. package/dist/types/cli/index.d.ts +2 -0
  241. package/dist/types/core/loader/loaderManager.d.ts +1 -0
  242. package/dist/types/core/loader/useLoader.d.ts +5 -0
  243. package/dist/types/core/plugin.d.ts +6 -1
  244. package/dist/types/document/Script.d.ts +4 -0
  245. package/dist/types/document/cli/index.d.ts +2 -0
  246. package/dist/types/document/constants.d.ts +2 -0
  247. package/dist/types/document/index.d.ts +1 -0
  248. package/dist/types/router/cli/index.d.ts +2 -0
  249. package/dist/types/router/runtime/index.d.ts +1 -0
  250. package/dist/types/router/runtime/plugin.d.ts +5 -2
  251. package/dist/types/router/runtime/types.d.ts +5 -2
  252. package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
  253. package/dist/types/ssr/cli/index.d.ts +2 -0
  254. package/dist/types/state/cli/index.d.ts +2 -0
  255. package/dist/types/state/types.d.ts +1 -0
  256. package/package.json +24 -13
  257. package/types/index.d.ts +2 -2
  258. package/types/router.d.ts +2 -2
@@ -1,82 +1,92 @@
1
- import invariant from 'invariant';
2
- /**
3
- * Calc id from string or object
4
- */
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 invariant from "invariant";
5
22
  const createGetId = () => {
6
- const idCache = new Map();
7
- return objectId => {
23
+ const idCache = /* @__PURE__ */ new Map();
24
+ return (objectId) => {
8
25
  const cachedId = idCache.get(objectId);
9
26
  if (cachedId) {
10
27
  return cachedId;
11
28
  }
12
-
13
- // WARNING: id should be unique after serialize.
14
29
  const id = JSON.stringify(objectId);
15
- invariant(id, 'params should be not null value');
30
+ invariant(id, "params should be not null value");
16
31
  idCache.set(objectId, id);
17
32
  return id;
18
33
  };
19
34
  };
20
- export let LoaderStatus;
21
- (function (LoaderStatus) {
22
- LoaderStatus[LoaderStatus["idle"] = 0] = "idle";
23
- LoaderStatus[LoaderStatus["loading"] = 1] = "loading";
24
- LoaderStatus[LoaderStatus["fulfilled"] = 2] = "fulfilled";
25
- LoaderStatus[LoaderStatus["rejected"] = 3] = "rejected";
26
- })(LoaderStatus || (LoaderStatus = {}));
35
+ var LoaderStatus = /* @__PURE__ */ ((LoaderStatus2) => {
36
+ LoaderStatus2[LoaderStatus2["idle"] = 0] = "idle";
37
+ LoaderStatus2[LoaderStatus2["loading"] = 1] = "loading";
38
+ LoaderStatus2[LoaderStatus2["fulfilled"] = 2] = "fulfilled";
39
+ LoaderStatus2[LoaderStatus2["rejected"] = 3] = "rejected";
40
+ return LoaderStatus2;
41
+ })(LoaderStatus || {});
27
42
  const createLoader = (id, initialData = {
28
43
  loading: false,
29
44
  reloading: false,
30
- data: undefined,
31
- error: undefined
45
+ data: void 0,
46
+ error: void 0
32
47
  }, loaderFn, skip = false) => {
33
48
  let promise;
34
- let status = LoaderStatus.idle;
35
- let {
36
- data,
37
- error
38
- } = initialData;
49
+ let status = 0 /* idle */;
50
+ let { data, error } = initialData;
39
51
  let hasLoaded = false;
40
- const handlers = new Set();
41
- const load = async () => {
52
+ const handlers = /* @__PURE__ */ new Set();
53
+ const load = () => __async(void 0, null, function* () {
42
54
  if (skip) {
43
55
  return promise;
44
56
  }
45
- if (status === LoaderStatus.loading) {
57
+ if (status === 1 /* loading */) {
46
58
  return promise;
47
59
  }
48
- status = LoaderStatus.loading;
60
+ status = 1 /* loading */;
49
61
  notify();
50
- promise = loaderFn().then(value => {
62
+ promise = loaderFn().then((value) => {
51
63
  data = value;
52
64
  error = null;
53
- status = LoaderStatus.fulfilled;
54
- }).catch(e => {
65
+ status = 2 /* fulfilled */;
66
+ }).catch((e) => {
55
67
  error = e;
56
68
  data = null;
57
- status = LoaderStatus.rejected;
69
+ status = 3 /* rejected */;
58
70
  }).finally(() => {
59
71
  promise = null;
60
72
  hasLoaded = true;
61
73
  notify();
62
74
  });
63
75
  return promise;
64
- };
76
+ });
65
77
  const getResult = () => ({
66
- loading: !hasLoaded && status === LoaderStatus.loading,
67
- reloading: hasLoaded && status === LoaderStatus.loading,
78
+ loading: !hasLoaded && status === 1 /* loading */,
79
+ reloading: hasLoaded && status === 1 /* loading */,
68
80
  data,
69
81
  error: error instanceof Error ? `${error.message}` : error,
70
- // redundant fields for ssr log
71
82
  _error: error
72
83
  });
73
84
  const notify = () => {
74
- // don't iterate handlers directly, since it could be modified during iteration
75
- [...handlers].forEach(handler => {
85
+ [...handlers].forEach((handler) => {
76
86
  handler(status, getResult());
77
87
  });
78
88
  };
79
- const onChange = handler => {
89
+ const onChange = (handler) => {
80
90
  handlers.add(handler);
81
91
  return () => {
82
92
  handlers.delete(handler);
@@ -93,75 +103,63 @@ const createLoader = (id, initialData = {
93
103
  load
94
104
  };
95
105
  };
96
- /**
97
- * Create loaders manager. It's returned instance will add to context
98
- * @param initialDataMap used to initialing loader data
99
- */
100
- export const createLoaderManager = (initialDataMap, managerOptions = {}) => {
101
- const {
102
- skipStatic = false,
103
- skipNonStatic = false
104
- } = managerOptions;
105
- const loadersMap = new Map();
106
+ const createLoaderManager = (initialDataMap, managerOptions = {}) => {
107
+ const { skipStatic = false, skipNonStatic = false } = managerOptions;
108
+ const loadersMap = /* @__PURE__ */ new Map();
106
109
  const getId = createGetId();
107
110
  const add = (loaderFn, loaderOptions) => {
108
111
  const id = getId(loaderOptions.params);
109
112
  let loader = loadersMap.get(id);
110
-
111
- // private property for opting out loader cache, maybe change in future
112
113
  const cache = loaderOptions._cache;
113
114
  if (!loader || cache === false) {
114
- // ignore non-static loader on static phase
115
115
  const ignoreNonStatic = skipNonStatic && !loaderOptions.static;
116
-
117
- // ignore static loader on non-static phase
118
116
  const ignoreStatic = skipStatic && loaderOptions.static;
119
117
  const skipExec = ignoreNonStatic || ignoreStatic;
120
- loader = createLoader(id, typeof initialDataMap[id] !== 'undefined' ? initialDataMap[id] : {
121
- data: loaderOptions.initialData
122
- }, loaderFn,
123
- // Todo whether static loader is exec when CSR
124
- skipExec);
118
+ loader = createLoader(
119
+ id,
120
+ typeof initialDataMap[id] !== "undefined" ? initialDataMap[id] : { data: loaderOptions.initialData },
121
+ loaderFn,
122
+ skipExec
123
+ );
125
124
  loadersMap.set(id, loader);
126
125
  }
127
126
  return id;
128
127
  };
129
- const get = id => loadersMap.get(id);
130
-
131
- // check if there has pending loaders
128
+ const get = (id) => loadersMap.get(id);
132
129
  const hasPendingLoaders = () => {
133
130
  for (const loader of loadersMap.values()) {
134
- const {
135
- promise
136
- } = loader;
131
+ const { promise } = loader;
137
132
  if (promise instanceof Promise) {
138
133
  return true;
139
134
  }
140
135
  }
141
136
  return false;
142
137
  };
143
-
144
- // waiting for all pending loaders to be settled
145
- const awaitPendingLoaders = async () => {
138
+ const awaitPendingLoaders = () => __async(void 0, null, function* () {
146
139
  const pendingLoaders = [];
147
140
  for (const [id, loader] of loadersMap) {
148
- const {
149
- promise
150
- } = loader;
141
+ const { promise } = loader;
151
142
  if (promise instanceof Promise) {
152
143
  pendingLoaders.push([id, loader]);
153
144
  }
154
145
  }
155
- await Promise.all(pendingLoaders.map(item => item[1].promise));
156
- return pendingLoaders.reduce((res, [id, loader]) => {
157
- res[id] = loader.result;
158
- return res;
159
- }, {});
160
- };
146
+ yield Promise.all(pendingLoaders.map((item) => item[1].promise));
147
+ return pendingLoaders.reduce(
148
+ (res, [id, loader]) => {
149
+ res[id] = loader.result;
150
+ return res;
151
+ },
152
+ {}
153
+ );
154
+ });
161
155
  return {
162
156
  hasPendingLoaders,
163
157
  awaitPendingLoaders,
164
158
  add,
165
159
  get
166
160
  };
167
- };
161
+ };
162
+ export {
163
+ LoaderStatus,
164
+ createLoaderManager
165
+ };
@@ -1,87 +1,114 @@
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
- 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; }
3
- 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; }
4
- import { useContext, useRef, useMemo, useState, useCallback, useEffect } from 'react';
5
- import invariant from 'invariant';
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
+ import {
21
+ useContext,
22
+ useRef,
23
+ useMemo,
24
+ useState,
25
+ useCallback,
26
+ useEffect
27
+ } from "react";
28
+ import invariant from "invariant";
6
29
  import { RuntimeReactContext } from "../../runtime-context";
7
30
  import { LoaderStatus } from "./loaderManager";
8
- const useLoader = (loaderFn, options = {
9
- params: undefined
10
- }) => {
31
+ const useLoader = (loaderFn, options = { params: void 0 }) => {
11
32
  const context = useContext(RuntimeReactContext);
12
33
  const isSSRRender = Boolean(context.ssr);
13
- const {
14
- loaderManager
15
- } = context;
34
+ const { loaderManager } = context;
16
35
  const loaderRef = useRef();
17
36
  const unlistenLoaderChangeRef = useRef(null);
18
-
19
- // SSR render should ignore `_cache` prop
20
- if (isSSRRender && Object.prototype.hasOwnProperty.call(options, '_cache')) {
37
+ if (isSSRRender && Object.prototype.hasOwnProperty.call(options, "_cache")) {
21
38
  delete options._cache;
22
39
  }
23
- const load = useCallback(params => {
24
- var _unlistenLoaderChange, _window, _window$_SSR_DATA, _window$_SSR_DATA$dat, _window$_SSR_DATA$dat2, _loaderRef$current2;
25
- if (typeof params === 'undefined') {
26
- var _loaderRef$current;
27
- return (_loaderRef$current = loaderRef.current) === null || _loaderRef$current === void 0 ? void 0 : _loaderRef$current.load();
28
- }
29
- const id = loaderManager.add(() => {
30
- try {
31
- const res = loaderFn(context, params);
32
- if (res instanceof Promise) {
33
- return res;
34
- }
35
- return Promise.resolve(res);
36
- } catch (e) {
37
- return Promise.reject(e);
40
+ const load = useCallback(
41
+ (params) => {
42
+ var _a, _b, _c, _d, _e, _f;
43
+ if (typeof params === "undefined") {
44
+ return (_a = loaderRef.current) == null ? void 0 : _a.load();
38
45
  }
39
- }, _objectSpread(_objectSpread({}, options), {}, {
40
- params
41
- }));
42
- loaderRef.current = loaderManager.get(id);
43
- // unsubscribe old loader onChange event
44
- (_unlistenLoaderChange = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChange === void 0 ? void 0 : _unlistenLoaderChange.call(unlistenLoaderChangeRef);
45
- if (isSSRRender) {
46
- return undefined;
47
- }
48
-
49
- // skip this loader, then try to unlisten loader change
50
- if (options.skip) {
51
- return undefined;
52
- }
53
-
54
- // do not load data again in CSR hydrate stage if SSR data exists
55
- if (context._hydration && ((_window = window) === null || _window === void 0 ? void 0 : (_window$_SSR_DATA = _window._SSR_DATA) === null || _window$_SSR_DATA === void 0 ? void 0 : (_window$_SSR_DATA$dat = _window$_SSR_DATA.data) === null || _window$_SSR_DATA$dat === void 0 ? void 0 : (_window$_SSR_DATA$dat2 = _window$_SSR_DATA$dat.loadersData[id]) === null || _window$_SSR_DATA$dat2 === void 0 ? void 0 : _window$_SSR_DATA$dat2.error) === null) {
56
- return undefined;
57
- }
58
- const res = loaderRef.current.load();
59
- unlistenLoaderChangeRef.current = (_loaderRef$current2 = loaderRef.current) === null || _loaderRef$current2 === void 0 ? void 0 : _loaderRef$current2.onChange((_status, _result) => {
60
- setResult(_result);
61
- if (_status === LoaderStatus.fulfilled) {
62
- var _options$onSuccess;
63
- options === null || options === void 0 ? void 0 : (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 ? void 0 : _options$onSuccess.call(options, _result.data);
46
+ const id = loaderManager.add(
47
+ () => {
48
+ try {
49
+ const res2 = loaderFn(context, params);
50
+ if (res2 instanceof Promise) {
51
+ return res2;
52
+ }
53
+ return Promise.resolve(res2);
54
+ } catch (e) {
55
+ return Promise.reject(e);
56
+ }
57
+ },
58
+ __spreadProps(__spreadValues({}, options), {
59
+ params
60
+ })
61
+ );
62
+ loaderRef.current = loaderManager.get(id);
63
+ (_b = unlistenLoaderChangeRef.current) == null ? void 0 : _b.call(unlistenLoaderChangeRef);
64
+ if (isSSRRender) {
65
+ return void 0;
66
+ }
67
+ if (options.skip) {
68
+ return void 0;
64
69
  }
65
- if (_status === LoaderStatus.rejected) {
66
- var _options$onError;
67
- options === null || options === void 0 ? void 0 : (_options$onError = options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call(options, _result.error);
70
+ if (context._hydration && ((_e = (_d = (_c = window == null ? void 0 : window._SSR_DATA) == null ? void 0 : _c.data) == null ? void 0 : _d.loadersData[id]) == null ? void 0 : _e.error) === null) {
71
+ return void 0;
68
72
  }
69
- });
70
- return res;
71
- }, [options.skip]);
72
- useEffect(() => () => {
73
- var _unlistenLoaderChange2;
74
- (_unlistenLoaderChange2 = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChange2 === void 0 ? void 0 : _unlistenLoaderChange2.call(unlistenLoaderChangeRef);
75
- }, []);
73
+ const res = loaderRef.current.load();
74
+ unlistenLoaderChangeRef.current = (_f = loaderRef.current) == null ? void 0 : _f.onChange(
75
+ (_status, _result) => {
76
+ var _a2, _b2;
77
+ setResult(_result);
78
+ if (_status === LoaderStatus.fulfilled) {
79
+ (_a2 = options == null ? void 0 : options.onSuccess) == null ? void 0 : _a2.call(options, _result.data);
80
+ }
81
+ if (_status === LoaderStatus.rejected) {
82
+ (_b2 = options == null ? void 0 : options.onError) == null ? void 0 : _b2.call(options, _result.error);
83
+ }
84
+ }
85
+ );
86
+ return res;
87
+ },
88
+ [options.skip]
89
+ );
90
+ useEffect(
91
+ () => () => {
92
+ var _a;
93
+ (_a = unlistenLoaderChangeRef.current) == null ? void 0 : _a.call(unlistenLoaderChangeRef);
94
+ },
95
+ []
96
+ );
76
97
  useMemo(() => {
77
- var _options$params;
78
- const p = (_options$params = options.params) !== null && _options$params !== void 0 ? _options$params : loaderFn.id;
79
- invariant(typeof p !== 'undefined' && p !== null, 'Params is required in useLoader');
98
+ var _a;
99
+ const p = (_a = options.params) != null ? _a : loaderFn.id;
100
+ invariant(
101
+ typeof p !== "undefined" && p !== null,
102
+ "Params is required in useLoader"
103
+ );
80
104
  load(p);
81
105
  }, [options.params]);
82
106
  const [result, setResult] = useState(loaderRef.current.result);
83
- return _objectSpread(_objectSpread({}, result), {}, {
107
+ return __spreadProps(__spreadValues({}, result), {
84
108
  reload: load
85
109
  });
86
110
  };
87
- export default useLoader;
111
+ var useLoader_default = useLoader;
112
+ export {
113
+ useLoader_default as default
114
+ };
@@ -1,9 +1,30 @@
1
- import { createManager, createPipeline, createAsyncPipeline } from '@modern-js/plugin';
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 {
22
+ createManager,
23
+ createPipeline,
24
+ createAsyncPipeline
25
+ } from "@modern-js/plugin";
2
26
  import { createLoaderManager } from "./loader/loaderManager";
3
27
  const hoc = createPipeline();
4
-
5
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
6
-
7
28
  const provide = createPipeline();
8
29
  const client = createAsyncPipeline();
9
30
  const server = createAsyncPipeline();
@@ -17,25 +38,21 @@ const runtimeHooks = {
17
38
  init,
18
39
  pickContext
19
40
  };
20
-
21
- /** All hooks of runtime plugin. */
22
-
23
- export const createRuntime = () => createManager(runtimeHooks);
24
-
25
- /**
26
- * register init hook. It would be revoked both ssr and csr.
27
- */
41
+ const createRuntime = () => createManager(runtimeHooks);
28
42
  const registerInit = (App, _init) => {
29
43
  const originalInit = App.init;
30
- App.init = async context => {
44
+ App.init = (context) => __async(void 0, null, function* () {
31
45
  if (!context.loaderManager) {
32
46
  context.loaderManager = createLoaderManager({});
33
47
  }
34
- await Promise.all([originalInit === null || originalInit === void 0 ? void 0 : originalInit(context), _init === null || _init === void 0 ? void 0 : _init(context)]);
35
- };
48
+ yield Promise.all([originalInit == null ? void 0 : originalInit(context), _init == null ? void 0 : _init(context)]);
49
+ });
50
+ };
51
+ const runtime = createRuntime();
52
+ const { createPlugin } = runtime;
53
+ export {
54
+ createPlugin,
55
+ createRuntime,
56
+ registerInit,
57
+ runtime
36
58
  };
37
- export const runtime = createRuntime();
38
- export const {
39
- createPlugin
40
- } = runtime;
41
- export { registerInit };
@@ -1,17 +1,23 @@
1
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
- import React, { useContext } from 'react';
3
- import { DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER } from "./constants";
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
+ import {
4
+ DOCUMENT_CHUNKSMAP_PLACEHOLDER,
5
+ DOCUMENT_SSRDATASCRIPT_PLACEHOLDER
6
+ } from "./constants";
4
7
  import { DocumentStructrueContext } from "./DocumentStructrueContext";
5
8
  import { DefaultRoot } from "./Root";
6
- import { jsxs as _jsxs } from "react/jsx-runtime";
7
- export function Body(props) {
8
- const {
9
- hasSetRoot
10
- } = useContext(DocumentStructrueContext);
11
- const {
12
- children
13
- } = props;
14
- return /*#__PURE__*/_jsxs("body", {
15
- children: [hasSetRoot ? null : DefaultRoot, children, `${DOCUMENT_CHUNKSMAP_PLACEHOLDER}`, `${DOCUMENT_SSRDATASCRIPT_PLACEHOLDER}`]
9
+ function Body(props) {
10
+ const { hasSetRoot } = useContext(DocumentStructrueContext);
11
+ const { children } = props;
12
+ return /* @__PURE__ */ jsxs("body", {
13
+ children: [
14
+ hasSetRoot ? null : /* @__PURE__ */ jsx(DefaultRoot, {}),
15
+ children,
16
+ `${DOCUMENT_CHUNKSMAP_PLACEHOLDER}`,
17
+ `${DOCUMENT_SSRDATASCRIPT_PLACEHOLDER}`
18
+ ]
16
19
  });
17
- }
20
+ }
21
+ export {
22
+ Body
23
+ };
@@ -1,6 +1,9 @@
1
- import React from 'react';
2
- export const DocumentContext = /*#__PURE__*/React.createContext({
1
+ import React from "react";
2
+ const DocumentContext = React.createContext({
3
3
  config: {},
4
4
  templateParams: {},
5
5
  processEnv: {}
6
- });
6
+ });
7
+ export {
8
+ DocumentContext
9
+ };
@@ -1,7 +1,10 @@
1
- import React from 'react';
2
- export const DocumentStructrueContext = /*#__PURE__*/React.createContext({
1
+ import React from "react";
2
+ const DocumentStructrueContext = React.createContext({
3
3
  hasSetHead: false,
4
4
  hasSetScripts: false,
5
5
  hasSetBody: false,
6
6
  hasSetRoot: false
7
- });
7
+ });
8
+ export {
9
+ DocumentStructrueContext
10
+ };
@@ -1,24 +1,25 @@
1
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
- import React, { useContext } from 'react';
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
3
  import { DocumentStructrueContext } from "./DocumentStructrueContext";
4
4
  import { Scripts } from "./Scripts";
5
5
  import { DOCUMENT_META_PLACEHOLDER } from "./constants";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- import { jsxs as _jsxs } from "react/jsx-runtime";
8
- export function Head(props) {
9
- const {
10
- hasSetScripts
11
- } = useContext(DocumentStructrueContext);
12
- const {
13
- children
14
- } = props;
15
- // todo: verify the children
16
- return /*#__PURE__*/_jsxs("head", {
17
- children: [`${DOCUMENT_META_PLACEHOLDER}`, !hasSetScripts && /*#__PURE__*/_jsx(Scripts, {}), children]
6
+ function Head(props) {
7
+ const { hasSetScripts } = useContext(DocumentStructrueContext);
8
+ const { children } = props;
9
+ return /* @__PURE__ */ jsxs("head", {
10
+ children: [
11
+ `${DOCUMENT_META_PLACEHOLDER}`,
12
+ !hasSetScripts && /* @__PURE__ */ jsx(Scripts, {}),
13
+ children
14
+ ]
18
15
  });
19
16
  }
20
- export function DefaultHead() {
21
- return /*#__PURE__*/_jsx("head", {
17
+ function DefaultHead() {
18
+ return /* @__PURE__ */ jsx("head", {
22
19
  children: `${DOCUMENT_META_PLACEHOLDER}`
23
20
  });
24
- }
21
+ }
22
+ export {
23
+ DefaultHead,
24
+ Head
25
+ };