@modern-js/runtime 2.5.0-alpha.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/cli/index.js +9 -0
  3. package/dist/cjs/common.js +0 -6
  4. package/dist/cjs/core/app-config.js +5 -1
  5. package/dist/cjs/core/compatible.js +8 -7
  6. package/dist/cjs/core/loader/index.js +4 -0
  7. package/dist/cjs/core/loader/loaderManager.js +6 -0
  8. package/dist/cjs/core/loader/useLoader.js +4 -0
  9. package/dist/cjs/document/Body.js +6 -8
  10. package/dist/cjs/document/DocumentContext.js +4 -0
  11. package/dist/cjs/document/DocumentStructureContext.js +4 -0
  12. package/dist/cjs/document/Head.js +7 -11
  13. package/dist/cjs/document/Html.js +24 -22
  14. package/dist/cjs/document/Links.js +1 -3
  15. package/dist/cjs/document/Root.js +8 -14
  16. package/dist/cjs/document/Script.js +5 -7
  17. package/dist/cjs/document/Scripts.js +1 -3
  18. package/dist/cjs/document/cli/index.js +7 -1
  19. package/dist/cjs/exports/head.js +4 -0
  20. package/dist/cjs/exports/loadable.js +4 -0
  21. package/dist/cjs/exports/styled.js +4 -0
  22. package/dist/cjs/router/cli/index.js +3 -7
  23. package/dist/cjs/router/index.js +4 -0
  24. package/dist/cjs/router/runtime/DefaultNotFound.js +13 -10
  25. package/dist/cjs/router/runtime/index.js +3 -52
  26. package/dist/cjs/router/runtime/plugin.js +6 -14
  27. package/dist/cjs/router/runtime/plugin.node.js +54 -10
  28. package/dist/cjs/router/runtime/utils.js +80 -28
  29. package/dist/cjs/router/runtime/withRouter.js +9 -6
  30. package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +4 -0
  31. package/dist/cjs/ssr/cli/index.js +4 -0
  32. package/dist/cjs/ssr/index.js +10 -24
  33. package/dist/cjs/ssr/index.node.js +4 -0
  34. package/dist/cjs/ssr/prefetch.js +3 -6
  35. package/dist/cjs/ssr/react/nossr/index.js +4 -0
  36. package/dist/cjs/ssr/react/prerender/index.js +4 -0
  37. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +19 -5
  38. package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +5 -0
  39. package/dist/cjs/ssr/serverRender/renderToStream/index.js +4 -0
  40. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +7 -22
  41. package/dist/cjs/ssr/serverRender/renderToStream/template.js +1 -2
  42. package/dist/cjs/ssr/serverRender/renderToString/entry.js +14 -12
  43. package/dist/cjs/ssr/serverRender/renderToString/index.js +4 -0
  44. package/dist/cjs/ssr/serverRender/renderToString/loadable.js +1 -1
  45. package/dist/cjs/ssr/serverRender/time.worker.js +1 -1
  46. package/dist/cjs/ssr/serverRender/utils.js +1 -1
  47. package/dist/cjs/ssr/utils.js +16 -4
  48. package/dist/cjs/state/index.js +4 -0
  49. package/dist/cjs/state/plugins.js +4 -0
  50. package/dist/cjs/state/runtime/index.js +4 -0
  51. package/dist/cjs/state/runtime/plugin.js +5 -7
  52. package/dist/esm/cli/index.js +5 -1
  53. package/dist/esm/common.js +1 -3
  54. package/dist/esm/core/app-config.js +3 -1
  55. package/dist/esm/core/compatible.js +3 -1
  56. package/dist/esm/core/loader/loaderManager.js +3 -1
  57. package/dist/esm/document/cli/index.js +3 -1
  58. package/dist/esm/router/cli/index.js +1 -5
  59. package/dist/esm/router/runtime/index.js +2 -3
  60. package/dist/esm/router/runtime/plugin.js +2 -5
  61. package/dist/esm/router/runtime/plugin.node.js +65 -8
  62. package/dist/esm/router/runtime/utils.js +106 -5
  63. package/dist/esm/ssr/prefetch.js +1 -0
  64. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +39 -8
  65. package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
  66. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +8 -19
  67. package/dist/esm/ssr/serverRender/renderToStream/template.js +1 -2
  68. package/dist/esm/ssr/serverRender/renderToString/entry.js +29 -16
  69. package/dist/esm/ssr/serverRender/time.worker.js +1 -1
  70. package/dist/esm/ssr/utils.js +6 -4
  71. package/dist/esm-node/cli/index.js +5 -0
  72. package/dist/esm-node/common.js +0 -4
  73. package/dist/esm-node/core/app-config.js +5 -1
  74. package/dist/esm-node/core/compatible.js +4 -7
  75. package/dist/esm-node/core/loader/loaderManager.js +2 -0
  76. package/dist/esm-node/document/Body.js +6 -8
  77. package/dist/esm-node/document/Head.js +7 -11
  78. package/dist/esm-node/document/Html.js +24 -22
  79. package/dist/esm-node/document/Links.js +1 -3
  80. package/dist/esm-node/document/Root.js +8 -14
  81. package/dist/esm-node/document/Script.js +5 -7
  82. package/dist/esm-node/document/Scripts.js +1 -3
  83. package/dist/esm-node/document/cli/index.js +3 -1
  84. package/dist/esm-node/router/cli/index.js +2 -5
  85. package/dist/esm-node/router/runtime/DefaultNotFound.js +13 -10
  86. package/dist/esm-node/router/runtime/index.js +2 -51
  87. package/dist/esm-node/router/runtime/plugin.js +2 -14
  88. package/dist/esm-node/router/runtime/plugin.node.js +53 -10
  89. package/dist/esm-node/router/runtime/utils.js +80 -22
  90. package/dist/esm-node/router/runtime/withRouter.js +9 -6
  91. package/dist/esm-node/ssr/index.js +6 -24
  92. package/dist/esm-node/ssr/prefetch.js +3 -6
  93. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +9 -5
  94. package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
  95. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +7 -22
  96. package/dist/esm-node/ssr/serverRender/renderToStream/template.js +1 -2
  97. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +10 -12
  98. package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +1 -1
  99. package/dist/esm-node/ssr/serverRender/time.worker.js +1 -1
  100. package/dist/esm-node/ssr/serverRender/utils.js +1 -1
  101. package/dist/esm-node/ssr/utils.js +6 -4
  102. package/dist/esm-node/state/runtime/plugin.js +1 -7
  103. package/dist/types/common.d.ts +1 -3
  104. package/dist/types/core/index.d.ts +0 -1
  105. package/dist/types/core/loader/index.d.ts +2 -1
  106. package/dist/types/core/loader/useLoader.d.ts +15 -1
  107. package/dist/types/router/runtime/index.d.ts +2 -4
  108. package/dist/types/runtime-context.d.ts +0 -2
  109. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +0 -2
  110. package/dist/types/ssr/serverRender/renderToString/type.d.ts +1 -0
  111. package/package.json +17 -12
  112. package/dist/cjs/core/types.js +0 -15
  113. package/dist/cjs/router/index.node.js +0 -31
  114. package/dist/cjs/router/runtime/DeferredDataScripts.js +0 -148
  115. package/dist/cjs/ssr/prefetch.worker.js +0 -67
  116. package/dist/cjs/ssr/serverRender/renderToStream/index.worker.js +0 -64
  117. package/dist/cjs/ssr/serverRender/renderToString/index.worker.js +0 -58
  118. package/dist/esm/core/types.js +0 -1
  119. package/dist/esm/router/index.node.js +0 -4
  120. package/dist/esm/router/runtime/DeferredDataScripts.js +0 -158
  121. package/dist/esm/ssr/prefetch.worker.js +0 -191
  122. package/dist/esm/ssr/serverRender/renderToStream/index.worker.js +0 -32
  123. package/dist/esm/ssr/serverRender/renderToString/index.worker.js +0 -167
  124. package/dist/esm-node/core/types.js +0 -0
  125. package/dist/esm-node/router/index.node.js +0 -7
  126. package/dist/esm-node/router/runtime/DeferredDataScripts.js +0 -131
  127. package/dist/esm-node/ssr/prefetch.worker.js +0 -46
  128. package/dist/esm-node/ssr/serverRender/renderToStream/index.worker.js +0 -35
  129. package/dist/esm-node/ssr/serverRender/renderToString/index.worker.js +0 -29
  130. package/dist/types/core/types.d.ts +0 -21
  131. package/dist/types/router/index.node.d.ts +0 -3
  132. package/dist/types/router/runtime/DeferredDataScripts.d.ts +0 -8
  133. package/dist/types/ssr/prefetch.worker.d.ts +0 -13
  134. package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +0 -6
  135. package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +0 -6
@@ -1 +1,2 @@
1
- export { default as useLoader } from './useLoader';
1
+ export { default as useLoader } from './useLoader';
2
+ export type { SSRData, SSRContainer } from './useLoader';
@@ -1,4 +1,17 @@
1
- type LoaderFn<P = any, T = any> = (context: any, params: P) => Promise<T>;
1
+ import { LoaderResult } from './loaderManager';
2
+ export interface SSRData {
3
+ loadersData: Record<string, LoaderResult | undefined>;
4
+ initialData?: Record<string, unknown>;
5
+ storeState?: any;
6
+ }
7
+ export interface SSRContainer {
8
+ data?: SSRData;
9
+ }
10
+ declare global {
11
+ interface Window {
12
+ _SSR_DATA?: SSRContainer;
13
+ }
14
+ }
2
15
  export interface LoaderOptions<Params = any, TData = any, TError extends Error = any> {
3
16
  /**
4
17
  * Revoke when loader excuted successfully.
@@ -31,6 +44,7 @@ export interface LoaderOptions<Params = any, TData = any, TError extends Error =
31
44
 
32
45
  static?: boolean;
33
46
  }
47
+ type LoaderFn<P = any, T = any> = (context: any, params: P) => Promise<T>;
34
48
  declare const useLoader: <TData = any, Params = any, E = any>(loaderFn: LoaderFn<Params, TData>, options?: LoaderOptions<Params, any, any>) => {
35
49
  reload: (params?: Params | undefined) => Promise<any> | undefined;
36
50
  loading: boolean;
@@ -3,7 +3,5 @@ import type { SingleRouteConfig, RouterConfig } from './types';
3
3
  export type { SingleRouteConfig, RouterConfig };
4
4
  export default routerPlugin;
5
5
  export { modifyRoutes } from './plugin';
6
- export * from './withRouter';
7
- export type { FormProps, Location, NavigateFunction, Params, Path, ShouldRevalidateFunction, SubmitFunction, SubmitOptions, unstable_Blocker, unstable_BlockerFunction } from 'react-router-dom';
8
- export { Form, Outlet, useAsyncError, useAsyncValue, isRouteErrorResponse, useBeforeUnload, useFormAction, useHref, useLocation, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useSearchParams, useSubmit, unstable_useBlocker, unstable_usePrompt } from 'react-router-dom';
9
- export { defer } from '@modern-js/utils/remix-router';
6
+ export * from 'react-router-dom';
7
+ export * from './withRouter';
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { Store } from '@modern-js-reduck/store';
3
- import type { StaticHandlerContext } from '@modern-js/utils/remix-router';
4
3
  import { createLoaderManager } from './core/loader/loaderManager';
5
4
  import { runtime } from './core/plugin';
6
5
  import { SSRServerContext } from './ssr/serverRender/types';
@@ -10,7 +9,6 @@ export interface BaseRuntimeContext {
10
9
  runner: ReturnType<typeof runtime.init>;
11
10
  ssrContext?: SSRServerContext;
12
11
  store?: Store;
13
- routerContext?: StaticHandlerContext;
14
12
  }
15
13
  export interface RuntimeContext extends BaseRuntimeContext {
16
14
  [key: string]: any;
@@ -1,8 +1,6 @@
1
- import type { StaticHandlerContext } from '@modern-js/utils/remix-router';
2
1
  import { RenderLevel, SSRServerContext } from '../types';
3
2
  type BuildShellAfterTemplateOptions = {
4
3
  ssrContext: SSRServerContext;
5
- routerContext: StaticHandlerContext;
6
4
  renderLevel: RenderLevel;
7
5
  };
8
6
  export declare function buildShellAfterTemplate(afterAppTemplate: string, options: BuildShellAfterTemplateOptions): string;
@@ -10,6 +10,7 @@ export type SSRServerContext = BaseSSRServerContext & {
10
10
  request: BaseSSRServerContext['request'] & {
11
11
  userAgent: string;
12
12
  cookie: string;
13
+ cookieMap: Record<string, string>;
13
14
  };
14
15
  };
15
16
  export interface RenderEntry {
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "2.5.0-alpha.0",
14
+ "version": "2.6.0",
15
15
  "engines": {
16
16
  "node": ">=14.17.6"
17
17
  },
@@ -133,6 +133,7 @@
133
133
  "@babel/core": "^7.18.0",
134
134
  "@babel/runtime": "^7.18.0",
135
135
  "@babel/types": "^7.18.0",
136
+ "cookie": "0.5.0",
136
137
  "@loadable/babel-plugin": "^5.13.2",
137
138
  "@loadable/component": "^5.15.0",
138
139
  "@loadable/server": "^5.15.1",
@@ -143,29 +144,32 @@
143
144
  "@modern-js-reduck/plugin-immutable": "^1.1.4",
144
145
  "@modern-js-reduck/react": "^1.1.4",
145
146
  "@modern-js-reduck/store": "^1.1.4",
146
- "@remix-run/node": "^1.12.0",
147
+ "@remix-run/node": "^1.9.0",
148
+ "@remix-run/router": "^1.2.0",
147
149
  "@types/loadable__component": "^5.13.4",
148
150
  "@types/react-helmet": "^6.1.2",
149
151
  "@types/redux-logger": "^3.0.9",
150
152
  "@types/styled-components": "^5.1.14",
151
- "esbuild": "0.15.7",
152
153
  "hoist-non-react-statics": "^3.3.2",
153
154
  "invariant": "^2.2.4",
154
155
  "react-helmet": "^6.1.0",
155
156
  "react-is": "^18",
156
- "react-router-dom": "^6.8.1",
157
+ "react-router-dom": "^6.6.0",
157
158
  "react-side-effect": "^2.1.1",
158
159
  "redux-logger": "^3.0.6",
160
+ "serialize-javascript": "^6.0.0",
159
161
  "styled-components": "^5.3.1",
160
- "@modern-js/plugin": "2.5.0",
161
- "@modern-js/utils": "2.5.0-alpha.0",
162
- "@modern-js/types": "2.5.0"
162
+ "esbuild": "0.15.7",
163
+ "@modern-js/plugin": "2.6.0",
164
+ "@modern-js/types": "2.6.0",
165
+ "@modern-js/utils": "2.6.0"
163
166
  },
164
167
  "peerDependencies": {
165
168
  "react": ">=17",
166
169
  "react-dom": ">=17"
167
170
  },
168
171
  "devDependencies": {
172
+ "@types/cookie": "0.5.1",
169
173
  "@remix-run/web-fetch": "^4.1.3",
170
174
  "@testing-library/react": "^13.4.0",
171
175
  "@testing-library/react-hooks": "^8.0.1",
@@ -174,16 +178,17 @@
174
178
  "@types/loadable__webpack-plugin": "^5.7.3",
175
179
  "@types/node": "^14",
176
180
  "@types/react-side-effect": "^1.1.1",
181
+ "@types/serialize-javascript": "^5.0.1",
177
182
  "jest": "^27",
178
183
  "react": "^18",
179
184
  "react-dom": "^18",
180
185
  "ts-jest": "^27.0.4",
181
186
  "typescript": "^4",
182
- "@modern-js/app-tools": "2.5.0",
183
- "@modern-js/server-core": "2.5.0",
184
- "@modern-js/core": "2.5.0",
185
- "@scripts/build": "2.5.0",
186
- "@scripts/jest-config": "2.5.0"
187
+ "@modern-js/app-tools": "2.6.0",
188
+ "@modern-js/core": "2.6.0",
189
+ "@modern-js/server-core": "2.6.0",
190
+ "@scripts/build": "2.6.0",
191
+ "@scripts/jest-config": "2.6.0"
187
192
  },
188
193
  "sideEffects": false,
189
194
  "modernConfig": {},
@@ -1,15 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
- var types_exports = {};
15
- module.exports = __toCommonJS(types_exports);
@@ -1,31 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var index_node_exports = {};
20
- __export(index_node_exports, {
21
- default: () => import_plugin2.routerPlugin,
22
- router: () => import_plugin.routerPlugin
23
- });
24
- module.exports = __toCommonJS(index_node_exports);
25
- var import_plugin = require("./runtime/plugin.node");
26
- var import_plugin2 = require("./runtime/plugin.node");
27
- __reExport(index_node_exports, require("./runtime"), module.exports);
28
- // Annotate the CommonJS export names for ESM import in node:
29
- 0 && (module.exports = {
30
- router
31
- });
@@ -1,148 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var DeferredDataScripts_exports = {};
19
- __export(DeferredDataScripts_exports, {
20
- default: () => DeferredDataScripts_default
21
- });
22
- module.exports = __toCommonJS(DeferredDataScripts_exports);
23
- var import_jsx_runtime = require("react/jsx-runtime");
24
- var import_react = require("react");
25
- var import_react_router_dom = require("react-router-dom");
26
- var import_serialize = require("@modern-js/utils/serialize");
27
- var import_common = require("../../common");
28
- const setupFnStr = `function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};`;
29
- const resolveFnStr = `function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};`;
30
- const preResolvedFnStr = `function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resovle(e)};`;
31
- const DeferredDataScripts = () => {
32
- const context = (0, import_react.useContext)(import_react_router_dom.UNSAFE_DataRouterContext);
33
- const { staticContext } = context || {};
34
- const hydratedRef = (0, import_react.useRef)(false);
35
- (0, import_react.useEffect)(() => {
36
- hydratedRef.current = true;
37
- }, []);
38
- const deferredScripts = (0, import_react.useMemo)(() => {
39
- const activeDeferreds = (staticContext == null ? void 0 : staticContext.activeDeferreds) || [];
40
- const _ROUTER_DATA = {
41
- loaderData: staticContext == null ? void 0 : staticContext.loaderData
42
- };
43
- let initialScripts = [
44
- `_ROUTER_DATA = ${(0, import_serialize.serializeJson)(_ROUTER_DATA)};`,
45
- `_ROUTER_DATA.s = ${setupFnStr}`,
46
- `_ROUTER_DATA.r = ${resolveFnStr}`,
47
- `_ROUTER_DATA.p = ${preResolvedFnStr}`
48
- ].join("\n");
49
- const deferredDataScripts = [];
50
- initialScripts += Object.entries(activeDeferreds).map(([routeId, deferredData]) => {
51
- const pendingKeys = new Set(deferredData.pendingKeys);
52
- const { deferredKeys } = deferredData;
53
- const deferredKeyPromiseStr = deferredKeys.map((key) => {
54
- if (pendingKeys.has(key)) {
55
- deferredDataScripts.push(
56
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DeferredDataScript, {
57
- data: deferredData.data[key],
58
- dataKey: key,
59
- routeId
60
- }, `${routeId} | ${key}`)
61
- );
62
- return `${JSON.stringify(key)}: _ROUTER_DATA.s(${JSON.stringify(
63
- routeId
64
- )},${JSON.stringify(key)}) `;
65
- } else {
66
- const trackedPromise = deferredData.data[key];
67
- if (typeof trackedPromise._error !== "undefined") {
68
- const error = {
69
- message: trackedPromise._error.message,
70
- stack: process.env.NODE_ENV !== "production" ? trackedPromise._error.stack : void 0
71
- };
72
- return `${JSON.stringify(
73
- key
74
- )}: _ROUTER_DATA.p(${void 0}, ${(0, import_serialize.serializeJson)(error)})`;
75
- } else {
76
- if (typeof trackedPromise._data === "undefined") {
77
- throw new Error(
78
- `The deferred data for ${key} was not resolved, did you forget to return data from a deferred promise`
79
- );
80
- }
81
- return `${JSON.stringify(key)}: _ROUTER_DATA.p(${(0, import_serialize.serializeJson)(
82
- trackedPromise._data
83
- )})`;
84
- }
85
- }
86
- }).join(",\n");
87
- return `Object.assign(_ROUTER_DATA.loaderData[${JSON.stringify(
88
- routeId
89
- )}], {${deferredKeyPromiseStr}});`;
90
- }).join("\n");
91
- return [initialScripts, deferredDataScripts];
92
- }, []);
93
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
94
- children: [
95
- !hydratedRef.current && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("script", {
96
- async: true,
97
- suppressHydrationWarning: true,
98
- dangerouslySetInnerHTML: { __html: deferredScripts[0] }
99
- }),
100
- !hydratedRef.current && deferredScripts[1],
101
- import_common.JSX_SHELL_STREAM_END_MARK
102
- ]
103
- });
104
- };
105
- const DeferredDataScript = ({
106
- data,
107
- routeId,
108
- dataKey
109
- }) => {
110
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, {
111
- children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.Await, {
112
- resolve: data,
113
- errorElement: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ErrorDeferredDataScript, {
114
- routeId,
115
- dataKey
116
- }),
117
- children: (data2) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("script", {
118
- async: true,
119
- suppressHydrationWarning: true,
120
- dangerouslySetInnerHTML: {
121
- __html: `_ROUTER_DATA.r(${JSON.stringify(
122
- routeId
123
- )}, ${JSON.stringify(dataKey)}, ${(0, import_serialize.serializeJson)(data2)});`
124
- }
125
- })
126
- }) : null
127
- });
128
- };
129
- const ErrorDeferredDataScript = ({
130
- routeId,
131
- dataKey
132
- }) => {
133
- const error = (0, import_react_router_dom.useAsyncError)();
134
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("script", {
135
- suppressHydrationWarning: true,
136
- dangerouslySetInnerHTML: {
137
- __html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(
138
- dataKey
139
- )}, ${void 0}, ${(0, import_serialize.serializeJson)({
140
- message: error.message,
141
- stack: error.stack
142
- })});`
143
- }
144
- });
145
- };
146
- var DeferredDataScripts_default = DeferredDataScripts;
147
- // Annotate the CommonJS export names for ESM import in node:
148
- 0 && (module.exports = {});
@@ -1,67 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var prefetch_worker_exports = {};
19
- __export(prefetch_worker_exports, {
20
- default: () => prefetch_worker_default
21
- });
22
- module.exports = __toCommonJS(prefetch_worker_exports);
23
- var import_jsx_runtime = require("react/jsx-runtime");
24
- var import_server = require("react-dom/server");
25
- var import_server2 = require("@loadable/server");
26
- const prefetch = async (App, context) => {
27
- var _a;
28
- const { ssrContext } = context;
29
- const { loadableStats } = ssrContext;
30
- if (loadableStats) {
31
- const extractor = new import_server2.ChunkExtractor({
32
- stats: loadableStats,
33
- entrypoints: [ssrContext.entryName].filter(Boolean)
34
- });
35
- (0, import_server.renderToStaticMarkup)(extractor.collectChunks(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(App, {
36
- context
37
- })));
38
- } else {
39
- (0, import_server.renderToStaticMarkup)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(App, {
40
- context
41
- }));
42
- }
43
- if (!context.loaderManager.hasPendingLoaders()) {
44
- return {
45
- initialData: context.initialData,
46
- i18nData: context.__i18nData__
47
- };
48
- }
49
- const loadersData = await context.loaderManager.awaitPendingLoaders();
50
- Object.keys(loadersData).forEach((id) => {
51
- const data = loadersData[id];
52
- if (data._error) {
53
- ssrContext.logger.error("App Prefetch Loader", data._error);
54
- ssrContext.metrics.emitCounter("app.prefetch.loader.error", 1);
55
- delete data._error;
56
- }
57
- });
58
- return {
59
- loadersData,
60
- initialData: context.initialData,
61
- i18nData: context.__i18nData__,
62
- storeState: (_a = context == null ? void 0 : context.store) == null ? void 0 : _a.getState()
63
- };
64
- };
65
- var prefetch_worker_default = prefetch;
66
- // Annotate the CommonJS export names for ESM import in node:
67
- 0 && (module.exports = {});
@@ -1,64 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
- mod
22
- ));
23
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
- var index_worker_exports = {};
25
- __export(index_worker_exports, {
26
- render: () => render
27
- });
28
- module.exports = __toCommonJS(index_worker_exports);
29
- var import_react = require("react");
30
- var import_prerender = require("../../react/prerender");
31
- var import_time = require("../time");
32
- var import_renderToPipe = __toESM(require("./renderToPipe"));
33
- const render = ({ App, context }) => {
34
- const { ssrContext } = context;
35
- if (!ssrContext) {
36
- throw new Error(
37
- 'The "ssrContext" must not be undefined, but received undefined'
38
- );
39
- }
40
- const end = (0, import_time.time)();
41
- const rootElement = (0, import_react.createElement)(App, {
42
- context: Object.assign(context || {}, {
43
- ssr: true
44
- })
45
- });
46
- const pipe = (0, import_renderToPipe.default)(rootElement, context, {
47
- onShellReady() {
48
- const cacheConfig = import_prerender.PreRender.config();
49
- if (cacheConfig) {
50
- ssrContext.cacheConfig = cacheConfig;
51
- }
52
- },
53
- onAllReady() {
54
- const cost = end();
55
- ssrContext.logger.debug("App Render To HTML cost = %d ms", cost);
56
- ssrContext.metrics.emitTimer("app.render.html.cost", cost);
57
- }
58
- });
59
- return pipe;
60
- };
61
- // Annotate the CommonJS export names for ESM import in node:
62
- 0 && (module.exports = {
63
- render
64
- });
@@ -1,58 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
- mod
22
- ));
23
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
- var index_worker_exports = {};
25
- __export(index_worker_exports, {
26
- render: () => render
27
- });
28
- module.exports = __toCommonJS(index_worker_exports);
29
- var import_prerender = require("../../react/prerender");
30
- var import_time = require("../time");
31
- var import_entry = __toESM(require("./entry"));
32
- const render = async ({
33
- App,
34
- context,
35
- config
36
- }) => {
37
- const ssrContext = context.ssrContext;
38
- const entry = new import_entry.default({
39
- ctx: ssrContext,
40
- App,
41
- config
42
- });
43
- entry.metrics.emitCounter("app.visit.count", 1);
44
- const end = (0, import_time.time)();
45
- const html = await entry.renderToHtml(context);
46
- const cost = end();
47
- entry.logger.info("App Render Total cost = %d ms", cost);
48
- entry.metrics.emitTimer("app.render.cost", cost);
49
- const cacheConfig = import_prerender.PreRender.config();
50
- if (cacheConfig) {
51
- context.ssrContext.cacheConfig = cacheConfig;
52
- }
53
- return html;
54
- };
55
- // Annotate the CommonJS export names for ESM import in node:
56
- 0 && (module.exports = {
57
- render
58
- });
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,4 +0,0 @@
1
- import { routerPlugin } from "./runtime/plugin.node";
2
- import { routerPlugin as routerPlugin2 } from "./runtime/plugin.node";
3
- export * from "./runtime";
4
- export { routerPlugin2 as default, routerPlugin as router };