@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
@@ -1,5 +1,3 @@
1
1
  import type { CliPlugin } from '@modern-js/core';
2
-
3
2
  declare const _default: () => CliPlugin;
4
-
5
3
  export default _default;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TRuntimeContext } from '../runtime-context';
2
+ import { RuntimeContext, TRuntimeContext } from '../runtime-context';
3
3
  import { Plugin } from './plugin';
4
4
  export declare type CreateAppOptions = {
5
5
  plugins: Plugin[];
@@ -11,11 +11,11 @@ interface HydrateFunc {
11
11
  (container: Element | Document, initialChildren: React.ReactNode): void;
12
12
  (initialChildren: React.ReactNode, container: Element | Document, callback?: () => void): void;
13
13
  }
14
- declare type BootStrap<T = unknown> = (App: React.ComponentType, id: string | Record<string, any> | HTMLElement, root: any, ReactDOM: {
15
- render: (children: React.ReactNode, rootElement?: HTMLElement) => void;
16
- hydrate: HydrateFunc;
14
+ declare type BootStrap<T = unknown> = (App: React.ComponentType, id: string | HTMLElement | RuntimeContext, root?: any, ReactDOM?: {
15
+ render?: (children: React.ReactNode, rootElement?: HTMLElement) => void;
16
+ hydrate?: HydrateFunc;
17
17
  createRoot?: (rootElement: HTMLElement) => any;
18
- hydrateRoot: HydrateFunc;
18
+ hydrateRoot?: HydrateFunc;
19
19
  }) => Promise<T>;
20
20
  export declare const bootstrap: BootStrap;
21
21
  export declare const useRuntimeContext: () => TRuntimeContext;
@@ -1,4 +1,4 @@
1
- export { createPlugin, createRuntime, runtime, registerInit, registerPrefetch } from './plugin';
1
+ export { createPlugin, createRuntime, runtime, registerInit } from './plugin';
2
2
  export type { Plugin } from './plugin';
3
3
  export { defineConfig, getConfig } from './app-config';
4
4
  export * from './compatible';
@@ -35,7 +35,6 @@ declare type ManagerOption = {
35
35
  * Create loaders manager. It's returned instance will add to context
36
36
  * @param initialDataMap used to initialing loader data
37
37
  */
38
-
39
38
  export declare const createLoaderManager: (initialDataMap: Record<string, LoaderResult>, managerOptions?: ManagerOption) => {
40
39
  hasPendingLoaders: () => boolean;
41
40
  awaitPendingLoaders: () => Promise<Record<string, LoaderResult>>;
@@ -20,28 +20,23 @@ export interface LoaderOptions<Params = any, TData = any, TError extends Error =
20
20
  /**
21
21
  * Revoke when loader ended with error
22
22
  */
23
-
24
23
  onError?: (error: TError) => void;
25
24
  /**
26
25
  * initialData to display once loader is ready.
27
26
  */
28
-
29
27
  initialData?: TData;
30
28
  /**
31
29
  * whether skip loader
32
30
  * if true, the loader will not exec.
33
31
  */
34
-
35
32
  skip?: boolean;
36
33
  /**
37
34
  * User params, it will pass to loader's second parameter.
38
35
  */
39
-
40
36
  params?: Params;
41
37
  /**
42
38
  * whether loader can exec on build phase.
43
39
  */
44
-
45
40
  static?: boolean;
46
41
  }
47
42
  declare type LoaderFn<P = any, T = any> = (context: any, params: P) => Promise<T>;
@@ -30,16 +30,12 @@ declare const runtimeHooks: {
30
30
  }, TRuntimeContext>;
31
31
  };
32
32
  /** All hooks of runtime plugin. */
33
-
34
33
  export declare type RuntimeHooks = typeof runtimeHooks;
35
34
  /** All hook callbacks of runtime plugin. */
36
-
37
35
  export declare type RuntimeHookCallbacks = ToThreads<RuntimeHooks>;
38
36
  /** All apis for runtime plugin. */
39
-
40
37
  export declare type PluginAPI = CommonAPI<RuntimeHooks>;
41
38
  /** Plugin options of a runtime plugin. */
42
-
43
39
  export declare type Plugin = PluginOptions<RuntimeHooks, Setup<RuntimeHooks>>;
44
40
  export declare const createRuntime: () => import("@modern-js/plugin").Manager<{
45
41
  hoc: import("@modern-js/plugin").Pipeline<{
@@ -71,15 +67,7 @@ export declare const createRuntime: () => import("@modern-js/plugin").Manager<{
71
67
  /**
72
68
  * register init hook. It would be revoked both ssr and csr.
73
69
  */
74
-
75
70
  declare const registerInit: (App: React.ComponentType, _init: (context: RuntimeContext) => any | Promise<any>) => void;
76
- /**
77
- * register prefetch hook. It would be revoked both ssr and csr.
78
- * But if ssr success, It wont exec in csr again.
79
- * If ssr prefetch failed, It will fallback to exec in csr.
80
- */
81
-
82
- declare const registerPrefetch: (App: React.ComponentType, prefetch: (context: RuntimeContext) => Promise<any>) => void;
83
71
  export declare const runtime: import("@modern-js/plugin").Manager<{
84
72
  hoc: import("@modern-js/plugin").Pipeline<{
85
73
  App: React.ComponentType<any>;
@@ -212,4 +200,4 @@ export declare const createPlugin: (setup?: Setup<{
212
200
  pickedContext: TRuntimeContext;
213
201
  }, TRuntimeContext>;
214
202
  }, Record<string, never>>;
215
- export { registerInit, registerPrefetch };
203
+ export { registerInit };
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare function Body(props: {
3
+ children?: any;
4
+ }): JSX.Element;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ declare type DocumentProps = {
3
+ [x: string]: any;
4
+ config?: any;
5
+ templateParams: {
6
+ [y: string]: any;
7
+ mountId?: string;
8
+ };
9
+ processEnv?: Record<string, string | undefined>;
10
+ children?: JSX.Element;
11
+ };
12
+ export declare const DocumentContext: React.Context<DocumentProps>;
13
+ export {};
@@ -0,0 +1,10 @@
1
+ import React, { ReactNode } from 'react';
2
+ declare type DocumentStructrueContextProps = {
3
+ hasSetHead?: boolean;
4
+ hasSetScripts?: boolean;
5
+ hasSetBody?: boolean;
6
+ hasSetRoot?: boolean;
7
+ docChild?: ReactNode;
8
+ };
9
+ export declare const DocumentStructrueContext: React.Context<DocumentStructrueContextProps>;
10
+ export {};
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare function Head(props: {
3
+ children?: any;
4
+ }): JSX.Element;
5
+ export declare function DefaultHead(): JSX.Element;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare function Html(props: {
3
+ children: any[];
4
+ }): JSX.Element;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ export declare function Root(props: {
3
+ children?: any;
4
+ rootId?: string;
5
+ }): JSX.Element;
6
+ export declare function DefaultRoot(props: {
7
+ children?: any;
8
+ }): JSX.Element;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function Scripts(): JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { CliPlugin } from '@modern-js/core';
2
+ declare const _default: () => CliPlugin;
3
+ export default _default;
@@ -0,0 +1,14 @@
1
+ export declare const DOC_EXT: string[];
2
+ export declare const DOCUMENT_META_PLACEHOLDER: string;
3
+ export declare const HTML_SEPARATOR = "<!--<?- html ?>-->";
4
+ export declare const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
5
+ export declare const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
6
+ export declare const DOCUMENT_SSR_PLACEHOLDER: string;
7
+ export declare const DOCUMENT_CHUNKSMAP_PLACEHOLDER: string;
8
+ export declare const DOCUMENT_SSRDATASCRIPT_PLACEHOLDER: string;
9
+ export declare const DOCUMENT_FILE_NAME = "document";
10
+ export declare const DOCUMENT_SCRIPTS_PLACEHOLDER: string;
11
+ export declare const DOCUMENT_NO_SCRIPTE_PLACEHOLDER: string;
12
+ export declare const PLACEHOLDER_REPLACER_MAP: {
13
+ [x: string]: string;
14
+ };
@@ -0,0 +1,8 @@
1
+ export * from './Html';
2
+ export * from './DocumentContext';
3
+ export * from './DocumentStructrueContext';
4
+ export * from './Head';
5
+ export * from './Body';
6
+ export * from './Root';
7
+ export * from './Scripts';
8
+ export * from './constants';
@@ -4,7 +4,7 @@ export declare const hook: (attacher: ({
4
4
  afterMatch,
5
5
  afterRender
6
6
  }: {
7
- addMiddleware: (mid: RequestHandler) => void;
7
+ addMiddleware: (mid: Middleware) => void;
8
8
  afterRender: (hook: AfterRenderHook) => void;
9
9
  afterMatch: (hook: AfterMatchHook) => void;
10
10
  }) => void) => ({
@@ -12,10 +12,10 @@ export declare const hook: (attacher: ({
12
12
  afterMatch,
13
13
  afterRender
14
14
  }: {
15
- addMiddleware: (mid: RequestHandler) => void;
15
+ addMiddleware: (mid: Middleware) => void;
16
16
  afterRender: (hook: AfterRenderHook) => void;
17
17
  afterMatch: (hook: AfterMatchHook) => void;
18
18
  }) => void;
19
19
  export declare type AfterRenderHook = (context: AfterRenderContext, next: NextFunction) => void;
20
20
  export declare type AfterMatchHook = (context: AfterMatchContext, next: NextFunction) => void;
21
- export declare type RequestHandler = (context: MiddlewareContext, next: NextFunction) => Promise<void> | void;
21
+ export declare type Middleware = (context: MiddlewareContext, next: NextFunction) => Promise<void> | void;
@@ -4,5 +4,5 @@ export type { Plugin } from './core';
4
4
  export type { AppConfig } from './common';
5
5
  export { isBrowser } from './common';
6
6
  export type { BaseRuntimeContext, RuntimeContext, BaseTRuntimeContext, TRuntimeContext } from './runtime-context';
7
- export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, registerPrefetch, defineConfig, registerInit, useRuntimeContext } from './core';
7
+ export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, defineConfig, registerInit, useRuntimeContext } from './core';
8
8
  export { StateConfig, RouterConfig };
@@ -1,5 +1,3 @@
1
1
  import type { CliPlugin } from '@modern-js/core';
2
-
3
2
  declare const _default: () => CliPlugin;
4
-
5
3
  export default _default;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { NestedRoute } from '@modern-js/types';
3
+ interface IProps {
4
+ children: React.ReactNode;
5
+ routes: NestedRoute[];
6
+ }
7
+ export declare function RootLayout(props: IProps): JSX.Element;
8
+ export {};
@@ -0,0 +1,22 @@
1
+ import { Location, Params } from 'react-router-dom';
2
+ import type { NestedRoute } from '@modern-js/types';
3
+ interface RouteAssets {
4
+ [routeId: string]: {
5
+ chunkIds?: (string | number)[];
6
+ assets?: string[];
7
+ };
8
+ }
9
+ interface RouteManifest {
10
+ routeAssets: RouteAssets;
11
+ enableFetchParallel?: boolean;
12
+ enableLogging?: boolean;
13
+ }
14
+ export interface RouteMatch<Route> {
15
+ params: Params;
16
+ pathname: string;
17
+ route: Route;
18
+ }
19
+ export declare function handleLoad(routes: NestedRoute[], location: Location, routeManifest: RouteManifest): void;
20
+ export declare function matchClientRoutes(routes: NestedRoute[], location: Location): RouteMatch<NestedRoute>[];
21
+ export declare function loadRouteModule(route: NestedRoute, routeAssets: RouteAssets): Promise<string[] | void>;
22
+ export {};
@@ -18,12 +18,10 @@ export declare type SingleRouteConfig = RouteProps & {
18
18
  /**
19
19
  * layout component
20
20
  */
21
-
22
21
  layout?: React.ComponentType;
23
22
  /**
24
23
  * component would be rendered when route macthed.
25
24
  */
26
-
27
25
  component?: React.ComponentType;
28
26
  };
29
27
  export declare type RouterConfig = {
@@ -4,6 +4,7 @@ import { createLoaderManager } from './core/loader/loaderManager';
4
4
  import { runtime } from './core/plugin';
5
5
  import { SSRServerContext } from './ssr/serverRender/types';
6
6
  export interface BaseRuntimeContext {
7
+ initialData?: Record<string, unknown>;
7
8
  loaderManager: ReturnType<typeof createLoaderManager>;
8
9
  runner: ReturnType<typeof runtime.init>;
9
10
  ssrContext?: SSRServerContext;
@@ -1,5 +1,3 @@
1
1
  import type { CliPlugin } from '@modern-js/core';
2
-
3
2
  declare const _default: () => CliPlugin;
4
-
5
3
  export default _default;
@@ -1,12 +1,12 @@
1
1
  import { RuntimeContext } from '../core';
2
2
  declare const prefetch: (App: React.ComponentType<any>, context: RuntimeContext) => Promise<{
3
- initialData: any;
3
+ initialData: Record<string, unknown> | undefined;
4
4
  i18nData: any;
5
5
  loadersData?: undefined;
6
6
  storeState?: undefined;
7
7
  } | {
8
8
  loadersData: Record<string, import("../core/loader/loaderManager").LoaderResult>;
9
- initialData: any;
9
+ initialData: Record<string, unknown> | undefined;
10
10
  i18nData: any;
11
11
  storeState: any;
12
12
  }>;
@@ -1,6 +1,7 @@
1
- import { RuntimeContext } from 'src/runtime-context';
1
+ import { RenderLevel, SSRServerContext } from '../types';
2
2
  declare type BuildShellAfterTemplateOptions = {
3
- context: RuntimeContext;
3
+ ssrContext: SSRServerContext;
4
+ renderLevel: RenderLevel;
4
5
  };
5
6
  export declare function buildShellAfterTemplate(afterAppTemplate: string, options: BuildShellAfterTemplateOptions): string;
6
7
  export {};
@@ -1 +1,2 @@
1
- export declare function buildShellBeforeTemplate(beforeAppTemplate: string): string;
1
+ import { RuntimeContext } from '../types';
2
+ export declare function buildShellBeforeTemplate(beforeAppTemplate: string, context: RuntimeContext): string;
@@ -2,7 +2,7 @@
2
2
  /// <reference types="react" />
3
3
  import { Writable } from 'stream';
4
4
  import { RenderToPipeableStreamOptions } from 'react-dom/server';
5
- import { InjectTemplate } from './type';
6
- export declare type Pipe<T extends Writable> = (output: T) => Promise<T>;
7
- declare function renderToPipe(rootElement: React.ReactElement, getTemplates: () => InjectTemplate, options?: RenderToPipeableStreamOptions): Pipe<Writable>;
5
+ import { RuntimeContext } from '../types';
6
+ export declare type Pipe<T extends Writable> = (output: T) => Promise<T | string>;
7
+ declare function renderToPipe(rootElement: React.ReactElement, context: RuntimeContext, options?: RenderToPipeableStreamOptions): Pipe<Writable>;
8
8
  export default renderToPipe;
@@ -1,3 +1,3 @@
1
- import { RuntimeContext } from '../types';
1
+ import { RenderLevel, RuntimeContext } from '../types';
2
2
  import { InjectTemplate } from './type';
3
- export declare function createTemplates(context: RuntimeContext): () => InjectTemplate;
3
+ export declare const getTemplates: (context: RuntimeContext, renderLevel: RenderLevel) => InjectTemplate;
@@ -3,10 +3,7 @@ import type { ServerConfig } from '@modern-js/core';
3
3
  import type { RuntimeContext } from '../../core';
4
4
  import { RenderLevel } from './renderToString/type';
5
5
  export type { SSRServerContext } from './renderToString/type';
6
- export declare type ModernSSRReactComponent = React.ComponentType<any> & {
7
- init: (context: RuntimeContext) => Promise<void>;
8
- prefetch: (context: RuntimeContext) => Promise<Record<string, any>>;
9
- };
6
+ export declare type ModernSSRReactComponent = React.ComponentType<any>;
10
7
  export { RuntimeContext, RenderLevel };
11
8
  export declare type SSRPluginConfig = {
12
9
  crossorigin?: boolean | 'anonymous' | 'use-credentials';
@@ -1,5 +1,3 @@
1
1
  import type { CliPlugin } from '@modern-js/core';
2
-
3
2
  declare const _default: () => CliPlugin;
4
-
5
3
  export default _default;
@@ -11,7 +11,6 @@ export declare type PluginOptions = Parameters<typeof createStore>[0] & {
11
11
  * Default: false
12
12
  * When it's true, will remove immer plugin
13
13
  */
14
-
15
14
  disableImmer?: boolean;
16
15
  devtools?: any;
17
16
  };
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "2.0.0-beta.0",
14
+ "version": "2.0.0-beta.1",
15
15
  "engines": {
16
16
  "node": ">=14.17.6"
17
17
  },
@@ -48,6 +48,11 @@
48
48
  "node": "./dist/js/node/exports/server.js",
49
49
  "default": "./dist/js/treeshaking/exports/server.js"
50
50
  },
51
+ "./document": {
52
+ "jsnext:source": "./src/document/index.ts",
53
+ "node": "./dist/js/node/document/index.js",
54
+ "default": "./dist/js/treeshaking/document/index.js"
55
+ },
51
56
  "./ssr": {
52
57
  "jsnext:source": "./src/ssr/index.ts",
53
58
  "node": "./dist/js/node/ssr/index",
@@ -93,6 +98,9 @@
93
98
  "server": [
94
99
  "./dist/types/exports/server.d.ts"
95
100
  ],
101
+ "document": [
102
+ "./dist/types/document/index.d.ts"
103
+ ],
96
104
  "ssr": [
97
105
  "./dist/types/ssr/index.d.ts"
98
106
  ],
@@ -120,9 +128,6 @@
120
128
  "@modern-js-reduck/plugin-immutable": "^1.0.1",
121
129
  "@modern-js-reduck/react": "^1.0.1",
122
130
  "@modern-js-reduck/store": "^1.0.3",
123
- "@modern-js/plugin": "2.0.0-beta.0",
124
- "@modern-js/types": "2.0.0-beta.0",
125
- "@modern-js/utils": "2.0.0-beta.0",
126
131
  "@types/loadable__component": "^5.13.4",
127
132
  "@types/react-helmet": "^6.1.2",
128
133
  "@types/redux-logger": "^3.0.9",
@@ -137,18 +142,16 @@
137
142
  "react-side-effect": "^2.1.1",
138
143
  "redux-logger": "^3.0.6",
139
144
  "serialize-javascript": "^6.0.0",
140
- "styled-components": "^5.3.1"
145
+ "styled-components": "^5.3.1",
146
+ "@modern-js/plugin": "2.0.0-beta.1",
147
+ "@modern-js/types": "2.0.0-beta.1",
148
+ "@modern-js/utils": "2.0.0-beta.1"
141
149
  },
142
150
  "peerDependencies": {
143
151
  "react": ">=17",
144
152
  "react-dom": ">=17"
145
153
  },
146
154
  "devDependencies": {
147
- "@modern-js/core": "2.0.0-beta.0",
148
- "@modern-js/server-core": "2.0.0-beta.0",
149
- "@modern-js/utils": "2.0.0-beta.0",
150
- "@scripts/build": "2.0.0-beta.0",
151
- "@scripts/jest-config": "2.0.0-beta.0",
152
155
  "@testing-library/react": "^13.4.0",
153
156
  "@testing-library/react-hooks": "^8.0.1",
154
157
  "@remix-run/web-fetch": "^4.1.3",
@@ -162,7 +165,12 @@
162
165
  "react": "^18",
163
166
  "react-dom": "^18",
164
167
  "ts-jest": "^27.0.4",
165
- "typescript": "^4"
168
+ "typescript": "^4",
169
+ "@modern-js/core": "2.0.0-beta.1",
170
+ "@modern-js/server-core": "2.0.0-beta.1",
171
+ "@modern-js/utils": "2.0.0-beta.1",
172
+ "@scripts/build": "2.0.0-beta.1",
173
+ "@scripts/jest-config": "2.0.0-beta.1"
166
174
  },
167
175
  "sideEffects": false,
168
176
  "modernConfig": {},