@modern-js/runtime 2.5.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.
- package/CHANGELOG.md +27 -0
- package/dist/cjs/cli/index.js +9 -0
- package/dist/cjs/core/app-config.js +5 -1
- package/dist/cjs/core/compatible.js +8 -7
- package/dist/cjs/core/loader/index.js +4 -0
- package/dist/cjs/core/loader/loaderManager.js +6 -0
- package/dist/cjs/core/loader/useLoader.js +4 -0
- package/dist/cjs/document/Body.js +6 -8
- package/dist/cjs/document/DocumentContext.js +4 -0
- package/dist/cjs/document/DocumentStructureContext.js +4 -0
- package/dist/cjs/document/Head.js +7 -11
- package/dist/cjs/document/Html.js +24 -22
- package/dist/cjs/document/Links.js +1 -3
- package/dist/cjs/document/Root.js +8 -14
- package/dist/cjs/document/Script.js +5 -7
- package/dist/cjs/document/Scripts.js +1 -3
- package/dist/cjs/document/cli/index.js +8 -2
- package/dist/cjs/exports/head.js +4 -0
- package/dist/cjs/exports/loadable.js +4 -0
- package/dist/cjs/exports/styled.js +4 -0
- package/dist/cjs/router/cli/index.js +3 -7
- package/dist/cjs/router/index.js +4 -0
- package/dist/cjs/router/runtime/DefaultNotFound.js +13 -10
- package/dist/cjs/router/runtime/plugin.js +5 -6
- package/dist/cjs/router/runtime/plugin.node.js +16 -9
- package/dist/cjs/router/runtime/utils.js +15 -36
- package/dist/cjs/router/runtime/withRouter.js +9 -6
- package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +4 -0
- package/dist/cjs/ssr/cli/index.js +4 -0
- package/dist/cjs/ssr/index.js +10 -24
- package/dist/cjs/ssr/index.node.js +4 -0
- package/dist/cjs/ssr/prefetch.js +3 -6
- package/dist/cjs/ssr/react/nossr/index.js +4 -0
- package/dist/cjs/ssr/react/prerender/index.js +4 -0
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -4
- package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +5 -0
- package/dist/cjs/ssr/serverRender/renderToStream/index.js +4 -0
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +10 -4
- package/dist/cjs/ssr/serverRender/renderToString/index.js +4 -0
- package/dist/cjs/ssr/serverRender/renderToString/loadable.js +1 -1
- package/dist/cjs/ssr/serverRender/time.worker.js +1 -1
- package/dist/cjs/ssr/serverRender/utils.js +1 -1
- package/dist/cjs/ssr/utils.js +16 -4
- package/dist/cjs/state/index.js +4 -0
- package/dist/cjs/state/plugins.js +4 -0
- package/dist/cjs/state/runtime/index.js +4 -0
- package/dist/cjs/state/runtime/plugin.js +5 -7
- package/dist/esm/cli/index.js +5 -1
- package/dist/esm/core/app-config.js +3 -1
- package/dist/esm/core/compatible.js +3 -1
- package/dist/esm/core/loader/loaderManager.js +3 -1
- package/dist/esm/document/cli/index.js +4 -2
- package/dist/esm/router/cli/index.js +1 -5
- package/dist/esm/ssr/prefetch.js +1 -0
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +35 -6
- package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
- package/dist/esm/ssr/serverRender/renderToString/entry.js +22 -6
- package/dist/esm/ssr/serverRender/time.worker.js +1 -1
- package/dist/esm/ssr/utils.js +6 -4
- package/dist/esm-node/cli/index.js +5 -0
- package/dist/esm-node/core/app-config.js +5 -1
- package/dist/esm-node/core/compatible.js +4 -7
- package/dist/esm-node/core/loader/loaderManager.js +2 -0
- package/dist/esm-node/document/Body.js +6 -8
- package/dist/esm-node/document/Head.js +7 -11
- package/dist/esm-node/document/Html.js +24 -22
- package/dist/esm-node/document/Links.js +1 -3
- package/dist/esm-node/document/Root.js +8 -14
- package/dist/esm-node/document/Script.js +5 -7
- package/dist/esm-node/document/Scripts.js +1 -3
- package/dist/esm-node/document/cli/index.js +4 -2
- package/dist/esm-node/router/cli/index.js +2 -5
- package/dist/esm-node/router/runtime/DefaultNotFound.js +13 -10
- package/dist/esm-node/router/runtime/plugin.js +1 -6
- package/dist/esm-node/router/runtime/plugin.node.js +12 -9
- package/dist/esm-node/router/runtime/utils.js +15 -36
- package/dist/esm-node/router/runtime/withRouter.js +9 -6
- package/dist/esm-node/ssr/index.js +6 -24
- package/dist/esm-node/ssr/prefetch.js +3 -6
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +6 -4
- package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +6 -4
- package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +1 -1
- package/dist/esm-node/ssr/serverRender/time.worker.js +1 -1
- package/dist/esm-node/ssr/serverRender/utils.js +1 -1
- package/dist/esm-node/ssr/utils.js +6 -4
- package/dist/esm-node/state/runtime/plugin.js +1 -7
- package/dist/types/ssr/serverRender/renderToString/type.d.ts +1 -0
- package/package.json +11 -9
- package/dist/cjs/ssr/prefetch.worker.js +0 -67
- package/dist/cjs/ssr/serverRender/renderToStream/index.worker.js +0 -64
- package/dist/cjs/ssr/serverRender/renderToString/index.worker.js +0 -58
- package/dist/esm/ssr/prefetch.worker.js +0 -191
- package/dist/esm/ssr/serverRender/renderToStream/index.worker.js +0 -32
- package/dist/esm/ssr/serverRender/renderToString/index.worker.js +0 -167
- package/dist/esm-node/ssr/prefetch.worker.js +0 -46
- package/dist/esm-node/ssr/serverRender/renderToStream/index.worker.js +0 -35
- package/dist/esm-node/ssr/serverRender/renderToString/index.worker.js +0 -29
- package/dist/types/ssr/prefetch.worker.d.ts +0 -13
- package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +0 -6
- package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +0 -6
|
@@ -50,13 +50,9 @@ function _objectSpreadProps(target, source) {
|
|
|
50
50
|
}
|
|
51
51
|
return target;
|
|
52
52
|
}
|
|
53
|
-
import { getEntryOptions, createRuntimeExportsUtils, PLUGIN_SCHEMAS } from "@modern-js/utils";
|
|
53
|
+
import { getEntryOptions, createRuntimeExportsUtils, PLUGIN_SCHEMAS, isRouterV5 as isV5 } from "@modern-js/utils";
|
|
54
54
|
var PLUGIN_IDENTIFIER = "router";
|
|
55
55
|
var ROUTES_IDENTIFIER = "routes";
|
|
56
|
-
var isV5 = function(config) {
|
|
57
|
-
var _config_runtime, _config_runtime_router;
|
|
58
|
-
return (config === null || config === void 0 ? void 0 : (_config_runtime = config.runtime) === null || _config_runtime === void 0 ? void 0 : (_config_runtime_router = _config_runtime.router) === null || _config_runtime_router === void 0 ? void 0 : _config_runtime_router.mode) === "react-router-5";
|
|
59
|
-
};
|
|
60
56
|
var cli_default = function() {
|
|
61
57
|
return {
|
|
62
58
|
name: "@modern-js/plugin-router",
|
package/dist/esm/ssr/prefetch.js
CHANGED
|
@@ -182,6 +182,7 @@ var prefetch = function() {
|
|
|
182
182
|
loadersData: loadersData,
|
|
183
183
|
initialData: context.initialData,
|
|
184
184
|
i18nData: context.__i18nData__,
|
|
185
|
+
// todo: move to plugin state
|
|
185
186
|
storeState: context === null || context === void 0 ? void 0 : (_context_store = context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
|
|
186
187
|
}
|
|
187
188
|
];
|
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
function _objectSpread(target) {
|
|
15
|
+
for(var i = 1; i < arguments.length; i++){
|
|
16
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
17
|
+
var ownKeys = Object.keys(source);
|
|
18
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
19
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
20
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
ownKeys.forEach(function(key) {
|
|
24
|
+
_defineProperty(target, key, source[key]);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return target;
|
|
28
|
+
}
|
|
1
29
|
import serialize from "serialize-javascript";
|
|
2
30
|
import { buildTemplate } from "./buildTemplate.share";
|
|
3
31
|
function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
@@ -6,18 +34,19 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
6
34
|
return template.replace("<!--<?- SSRDataScript ?>-->", ssrDataScript);
|
|
7
35
|
function buildSSRDataScript() {
|
|
8
36
|
var ssrContext = options.ssrContext, renderLevel = options.renderLevel;
|
|
9
|
-
var request = ssrContext.request;
|
|
37
|
+
var request = ssrContext.request, enableUnsafeCtx = ssrContext.enableUnsafeCtx;
|
|
38
|
+
var unsafeContext = {
|
|
39
|
+
headers: request.headers
|
|
40
|
+
};
|
|
10
41
|
var SSRData = {
|
|
11
42
|
context: {
|
|
12
|
-
request: {
|
|
43
|
+
request: _objectSpread({
|
|
13
44
|
params: request.params,
|
|
14
45
|
query: request.query,
|
|
15
46
|
pathname: request.pathname,
|
|
16
47
|
host: request.host,
|
|
17
|
-
url: request.url
|
|
18
|
-
|
|
19
|
-
cookieMap: request.cookieMap
|
|
20
|
-
}
|
|
48
|
+
url: request.url
|
|
49
|
+
}, enableUnsafeCtx ? unsafeContext : {})
|
|
21
50
|
},
|
|
22
51
|
renderLevel: renderLevel
|
|
23
52
|
};
|
|
@@ -100,6 +100,7 @@ function getHeadTemplate(beforeEntryTemplate, context) {
|
|
|
100
100
|
var helmetData = ReactHelmet.renderStatic();
|
|
101
101
|
return helmetData ? helmetReplace(headTemplate2, helmetData) : headTemplate2;
|
|
102
102
|
},
|
|
103
|
+
// @TODO: prefetch scripts of lazy component
|
|
103
104
|
injectCss
|
|
104
105
|
];
|
|
105
106
|
var _ref = _slicedToArray(beforeEntryTemplate.match(HEAD_REG_EXP) || [], 1), tmp = _ref[0], headTemplate = tmp === void 0 ? "" : tmp;
|
|
@@ -59,6 +59,21 @@ function _defineProperty(obj, key, value) {
|
|
|
59
59
|
}
|
|
60
60
|
return obj;
|
|
61
61
|
}
|
|
62
|
+
function _objectSpread(target) {
|
|
63
|
+
for(var i = 1; i < arguments.length; i++){
|
|
64
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
65
|
+
var ownKeys = Object.keys(source);
|
|
66
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
67
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
68
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
ownKeys.forEach(function(key) {
|
|
72
|
+
_defineProperty(target, key, source[key]);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return target;
|
|
76
|
+
}
|
|
62
77
|
var __generator = this && this.__generator || function(thisArg, body) {
|
|
63
78
|
var f, y, t, g, _ = {
|
|
64
79
|
label: 0,
|
|
@@ -167,19 +182,20 @@ import { reduce } from "./reduce";
|
|
|
167
182
|
import * as loadableRenderer from "./loadable";
|
|
168
183
|
import * as styledComponentRenderer from "./styledComponent";
|
|
169
184
|
var buildTemplateData = function(context, data, renderLevel) {
|
|
170
|
-
var request = context.request;
|
|
185
|
+
var request = context.request, enableUnsafeCtx = context.enableUnsafeCtx;
|
|
186
|
+
var unsafeContext = {
|
|
187
|
+
headers: request.headers
|
|
188
|
+
};
|
|
171
189
|
return {
|
|
172
190
|
data: data,
|
|
173
191
|
context: {
|
|
174
|
-
request: {
|
|
192
|
+
request: _objectSpread({
|
|
175
193
|
params: request.params,
|
|
176
194
|
query: request.query,
|
|
177
195
|
pathname: request.pathname,
|
|
178
196
|
host: request.host,
|
|
179
|
-
url: request.url
|
|
180
|
-
|
|
181
|
-
cookieMap: request.cookieMap
|
|
182
|
-
}
|
|
197
|
+
url: request.url
|
|
198
|
+
}, enableUnsafeCtx ? unsafeContext : {})
|
|
183
199
|
},
|
|
184
200
|
renderLevel: renderLevel
|
|
185
201
|
};
|
|
@@ -45,7 +45,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
45
45
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
46
46
|
}
|
|
47
47
|
function processHrtime(previousTimestamp) {
|
|
48
|
-
var now = new Date().getTime();
|
|
48
|
+
var now = /* @__PURE__ */ new Date().getTime();
|
|
49
49
|
var clocktime = now * 1e-3;
|
|
50
50
|
var seconds = Math.floor(clocktime);
|
|
51
51
|
var nanoseconds = Math.floor(clocktime % 1 * 1e9);
|
package/dist/esm/ssr/utils.js
CHANGED
|
@@ -72,6 +72,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
72
72
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
73
73
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
74
74
|
}
|
|
75
|
+
import cookieTool from "cookie";
|
|
75
76
|
var isReact18 = function() {
|
|
76
77
|
return process.env.IS_REACT18 === "true";
|
|
77
78
|
};
|
|
@@ -79,6 +80,7 @@ var formatServer = function(request) {
|
|
|
79
80
|
var _ref = request.headers || {}, _ref_cookie = _ref.cookie, cookie = _ref_cookie === void 0 ? "" : _ref_cookie, tmp = _ref["user-agent"], userAgent = tmp === void 0 ? "" : tmp, referer = _ref.referer;
|
|
80
81
|
return _objectSpread({
|
|
81
82
|
cookie: cookie,
|
|
83
|
+
cookieMap: cookieTool.parse(cookie || "") || {},
|
|
82
84
|
userAgent: userAgent,
|
|
83
85
|
referer: referer
|
|
84
86
|
}, request);
|
|
@@ -93,15 +95,15 @@ var getQuery = function() {
|
|
|
93
95
|
}, {});
|
|
94
96
|
};
|
|
95
97
|
var formatClient = function(request) {
|
|
96
|
-
var _request_headers
|
|
98
|
+
var _request_headers;
|
|
97
99
|
return {
|
|
98
100
|
params: request.params || {},
|
|
99
101
|
host: request.host || location.host,
|
|
100
102
|
pathname: request.pathname || location.pathname,
|
|
101
103
|
headers: request.headers || {},
|
|
102
|
-
cookieMap:
|
|
103
|
-
cookie:
|
|
104
|
-
userAgent: ((
|
|
104
|
+
cookieMap: cookieTool.parse(document.cookie || "") || {},
|
|
105
|
+
cookie: document.cookie || "",
|
|
106
|
+
userAgent: ((_request_headers = request.headers) === null || _request_headers === void 0 ? void 0 : _request_headers["user-agent"]) || navigator.userAgent,
|
|
105
107
|
referer: request.referer || document.referrer,
|
|
106
108
|
query: request.query || getQuery(),
|
|
107
109
|
url: location.href
|
|
@@ -24,6 +24,11 @@ var cli_default = () => ({
|
|
|
24
24
|
runtimeByEntries: {},
|
|
25
25
|
source: {
|
|
26
26
|
alias: {
|
|
27
|
+
/**
|
|
28
|
+
* twin.macro inserts styled-components into the code during the compilation process
|
|
29
|
+
* But it will not be installed under the user project.
|
|
30
|
+
* So need to add alias
|
|
31
|
+
*/
|
|
27
32
|
"styled-components": require.resolve("styled-components")
|
|
28
33
|
},
|
|
29
34
|
globalVars: {
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
const APP_CONFIG_SYMBOL = "config";
|
|
2
|
-
const getConfig = (Component) =>
|
|
2
|
+
const getConfig = (Component) => (
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
4
|
+
// @ts-expect-error
|
|
5
|
+
Component[APP_CONFIG_SYMBOL]
|
|
6
|
+
);
|
|
3
7
|
const defineConfig = (Component, config) => {
|
|
4
8
|
Component[APP_CONFIG_SYMBOL] = config;
|
|
5
9
|
return Component;
|
|
@@ -58,12 +58,7 @@ const createApp = ({ plugins }) => {
|
|
|
58
58
|
}
|
|
59
59
|
);
|
|
60
60
|
}
|
|
61
|
-
return /* @__PURE__ */ jsx(RuntimeReactContext.Provider, {
|
|
62
|
-
value: contextValue,
|
|
63
|
-
children: /* @__PURE__ */ jsx(App2, {
|
|
64
|
-
...props
|
|
65
|
-
})
|
|
66
|
-
});
|
|
61
|
+
return /* @__PURE__ */ jsx(RuntimeReactContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(App2, { ...props }) });
|
|
67
62
|
};
|
|
68
63
|
return hoistNonReactStatics(WrapComponent, App2);
|
|
69
64
|
}
|
|
@@ -190,12 +185,14 @@ const bootstrap = async (BootApp, id, root, ReactDOM) => {
|
|
|
190
185
|
{},
|
|
191
186
|
{
|
|
192
187
|
skipNonStatic: id.staticGenerate,
|
|
188
|
+
// if not static generate, only non-static loader can exec on prod env
|
|
193
189
|
skipStatic: process.env.NODE_ENV === "production" && !id.staticGenerate
|
|
194
190
|
}
|
|
195
191
|
)
|
|
196
192
|
});
|
|
197
193
|
const isRedirectResponse = (result) => {
|
|
198
|
-
if (typeof Response !== "undefined" &&
|
|
194
|
+
if (typeof Response !== "undefined" && // fix: ssg workflow doesn't inject Web Response
|
|
195
|
+
result instanceof Response && result.status >= 300 && result.status <= 399) {
|
|
199
196
|
const { status } = result;
|
|
200
197
|
const redirectUrl = result.headers.get("Location") || "/";
|
|
201
198
|
const { ssrContext } = context;
|
|
@@ -59,6 +59,7 @@ const createLoader = (id, initialData = {
|
|
|
59
59
|
reloading: hasLoaded && status === 1 /* loading */,
|
|
60
60
|
data,
|
|
61
61
|
error: error instanceof Error ? `${error.message}` : error,
|
|
62
|
+
// redundant fields for ssr log
|
|
62
63
|
_error: error
|
|
63
64
|
});
|
|
64
65
|
const notify = () => {
|
|
@@ -99,6 +100,7 @@ const createLoaderManager = (initialDataMap, managerOptions = {}) => {
|
|
|
99
100
|
id,
|
|
100
101
|
typeof initialDataMap[id] !== "undefined" ? initialDataMap[id] : { data: loaderOptions.initialData },
|
|
101
102
|
loaderFn,
|
|
103
|
+
// Todo whether static loader is exec when CSR
|
|
102
104
|
skipExec
|
|
103
105
|
);
|
|
104
106
|
loadersMap.set(id, loader);
|
|
@@ -9,14 +9,12 @@ import { DefaultRoot } from "./Root";
|
|
|
9
9
|
function Body(props) {
|
|
10
10
|
const { hasSetRoot } = useContext(DocumentStructureContext);
|
|
11
11
|
const { children } = props;
|
|
12
|
-
return /* @__PURE__ */ jsxs("body", {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
]
|
|
19
|
-
});
|
|
12
|
+
return /* @__PURE__ */ jsxs("body", { children: [
|
|
13
|
+
hasSetRoot ? null : /* @__PURE__ */ jsx(DefaultRoot, {}),
|
|
14
|
+
children,
|
|
15
|
+
`${DOCUMENT_CHUNKSMAP_PLACEHOLDER}`,
|
|
16
|
+
`${DOCUMENT_SSRDATASCRIPT_PLACEHOLDER}`
|
|
17
|
+
] });
|
|
20
18
|
}
|
|
21
19
|
export {
|
|
22
20
|
Body
|
|
@@ -7,19 +7,15 @@ import { DOCUMENT_META_PLACEHOLDER } from "./constants";
|
|
|
7
7
|
function Head(props) {
|
|
8
8
|
const { hasSetScripts, hasSetLinks } = useContext(DocumentStructureContext);
|
|
9
9
|
const { children } = props;
|
|
10
|
-
return /* @__PURE__ */ jsxs("head", {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
]
|
|
17
|
-
});
|
|
10
|
+
return /* @__PURE__ */ jsxs("head", { children: [
|
|
11
|
+
`${DOCUMENT_META_PLACEHOLDER}`,
|
|
12
|
+
!hasSetLinks && /* @__PURE__ */ jsx(Links, {}),
|
|
13
|
+
!hasSetScripts && /* @__PURE__ */ jsx(Scripts, {}),
|
|
14
|
+
children
|
|
15
|
+
] });
|
|
18
16
|
}
|
|
19
17
|
function DefaultHead() {
|
|
20
|
-
return /* @__PURE__ */ jsx("head", {
|
|
21
|
-
children: `${DOCUMENT_META_PLACEHOLDER}`
|
|
22
|
-
});
|
|
18
|
+
return /* @__PURE__ */ jsx("head", { children: `${DOCUMENT_META_PLACEHOLDER}` });
|
|
23
19
|
}
|
|
24
20
|
export {
|
|
25
21
|
DefaultHead,
|
|
@@ -34,29 +34,31 @@ function Html(props) {
|
|
|
34
34
|
const notMissMustChild = [
|
|
35
35
|
hasSetHead,
|
|
36
36
|
hasSetBody
|
|
37
|
+
// hasSetScripts,
|
|
38
|
+
// hasSetRoot,
|
|
37
39
|
].every((item) => item);
|
|
38
40
|
if (!notMissMustChild) {
|
|
39
|
-
return /* @__PURE__ */ jsx("html", {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
});
|
|
41
|
+
return /* @__PURE__ */ jsx("html", { children: /* @__PURE__ */ jsxs("body", { style: { color: "red" }, children: [
|
|
42
|
+
`Miss the `,
|
|
43
|
+
[
|
|
44
|
+
hasSetHead,
|
|
45
|
+
hasSetBody
|
|
46
|
+
// hasSetScripts,
|
|
47
|
+
// hasSetRoot,
|
|
48
|
+
].map((item, index) => {
|
|
49
|
+
return item ? null : [
|
|
50
|
+
"Head",
|
|
51
|
+
"Body"
|
|
52
|
+
// 'Scripts',
|
|
53
|
+
// 'Root',
|
|
54
|
+
][index];
|
|
55
|
+
}),
|
|
56
|
+
` Element`
|
|
57
|
+
] }) });
|
|
57
58
|
}
|
|
58
|
-
return /* @__PURE__ */ jsx("html", {
|
|
59
|
-
|
|
59
|
+
return /* @__PURE__ */ jsx("html", { children: /* @__PURE__ */ jsxs(
|
|
60
|
+
DocumentStructureContext.Provider,
|
|
61
|
+
{
|
|
60
62
|
value: {
|
|
61
63
|
hasSetHead,
|
|
62
64
|
hasSetScripts,
|
|
@@ -70,8 +72,8 @@ function Html(props) {
|
|
|
70
72
|
!hasSetBody && /* @__PURE__ */ jsx(Body, {}),
|
|
71
73
|
children
|
|
72
74
|
]
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
+
}
|
|
76
|
+
) });
|
|
75
77
|
}
|
|
76
78
|
export {
|
|
77
79
|
Html
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { DOCUMENT_LINKS_PLACEHOLDER } from "./constants";
|
|
3
3
|
function Links() {
|
|
4
|
-
return /* @__PURE__ */ jsx(Fragment, {
|
|
5
|
-
children: DOCUMENT_LINKS_PLACEHOLDER
|
|
6
|
-
});
|
|
4
|
+
return /* @__PURE__ */ jsx(Fragment, { children: DOCUMENT_LINKS_PLACEHOLDER });
|
|
7
5
|
}
|
|
8
6
|
export {
|
|
9
7
|
Links
|
|
@@ -7,25 +7,19 @@ function Root(props) {
|
|
|
7
7
|
const {
|
|
8
8
|
templateParams: { mountId = "root" }
|
|
9
9
|
} = useContext(DocumentContext);
|
|
10
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
11
|
-
|
|
12
|
-
children
|
|
13
|
-
|
|
14
|
-
children
|
|
15
|
-
]
|
|
16
|
-
});
|
|
10
|
+
return /* @__PURE__ */ jsxs("div", { id: `${rootId || mountId}`, children: [
|
|
11
|
+
`${DOCUMENT_SSR_PLACEHOLDER}`,
|
|
12
|
+
children
|
|
13
|
+
] });
|
|
17
14
|
}
|
|
18
15
|
function DefaultRoot(props) {
|
|
19
16
|
const {
|
|
20
17
|
templateParams: { mountId = "root" }
|
|
21
18
|
} = useContext(DocumentContext);
|
|
22
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
23
|
-
|
|
24
|
-
children
|
|
25
|
-
|
|
26
|
-
props.children
|
|
27
|
-
]
|
|
28
|
-
});
|
|
19
|
+
return /* @__PURE__ */ jsxs("div", { id: `${mountId}`, children: [
|
|
20
|
+
`${DOCUMENT_SSR_PLACEHOLDER}`,
|
|
21
|
+
props.children
|
|
22
|
+
] });
|
|
29
23
|
}
|
|
30
24
|
export {
|
|
31
25
|
DefaultRoot,
|
|
@@ -7,13 +7,11 @@ function Script(props) {
|
|
|
7
7
|
const { content } = props;
|
|
8
8
|
const contentStr = content.toString();
|
|
9
9
|
const contentIIFE = encodeURIComponent(`(${contentStr})()`);
|
|
10
|
-
return /* @__PURE__ */ jsxs(Fragment, {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
]
|
|
16
|
-
});
|
|
10
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11
|
+
`${DOCUMENT_SCRIPT_PLACEHOLDER_START}`,
|
|
12
|
+
`${contentIIFE}`,
|
|
13
|
+
`${DOCUMENT_SCRIPT_PLACEHOLDER_END}`
|
|
14
|
+
] });
|
|
17
15
|
}
|
|
18
16
|
export {
|
|
19
17
|
Script
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { DOCUMENT_SCRIPTS_PLACEHOLDER } from "./constants";
|
|
3
3
|
function Scripts() {
|
|
4
|
-
return /* @__PURE__ */ jsx(Fragment, {
|
|
5
|
-
children: `${DOCUMENT_SCRIPTS_PLACEHOLDER}`
|
|
6
|
-
});
|
|
4
|
+
return /* @__PURE__ */ jsx(Fragment, { children: `${DOCUMENT_SCRIPTS_PLACEHOLDER}` });
|
|
7
5
|
}
|
|
8
6
|
export {
|
|
9
7
|
Scripts
|
|
@@ -60,7 +60,7 @@ var cli_default = () => ({
|
|
|
60
60
|
}
|
|
61
61
|
return async ({ htmlWebpackPlugin }) => {
|
|
62
62
|
const documentParams = getDocParams({
|
|
63
|
-
config: api.
|
|
63
|
+
config: api.useResolvedConfigContext(),
|
|
64
64
|
entryName,
|
|
65
65
|
templateParameters
|
|
66
66
|
});
|
|
@@ -91,6 +91,7 @@ var cli_default = () => ({
|
|
|
91
91
|
entryPoints: [documentFilePath],
|
|
92
92
|
outfile: htmlOutputFile,
|
|
93
93
|
platform: "node",
|
|
94
|
+
// change esbuild use the rootDir tsconfig.json as default to tempTsConfigFile
|
|
94
95
|
tsconfig: tempTsConfigFile,
|
|
95
96
|
target: "es6",
|
|
96
97
|
loader: {
|
|
@@ -147,7 +148,7 @@ var cli_default = () => ({
|
|
|
147
148
|
`${DOCUMENT_SCRIPT_PLACEHOLDER_START}(.*?)${DOCUMENT_SCRIPT_PLACEHOLDER_END}`,
|
|
148
149
|
"g"
|
|
149
150
|
),
|
|
150
|
-
(_scriptStr, $1) => `<script>${decodeURIComponent($1)}
|
|
151
|
+
(_scriptStr, $1) => `<script>${decodeURIComponent($1)}</script>`
|
|
151
152
|
);
|
|
152
153
|
}
|
|
153
154
|
const finalHtml = `<!DOCTYPE html>${html}`.replace(DOCUMENT_META_PLACEHOLDER, metas).replace(DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR).replace(DOCUMENT_SCRIPTS_PLACEHOLDER, scripts).replace(DOCUMENT_LINKS_PLACEHOLDER, links).replace(
|
|
@@ -173,6 +174,7 @@ var cli_default = () => ({
|
|
|
173
174
|
) : { ...options == null ? void 0 : options.templateParameters };
|
|
174
175
|
const templateContent = documentEntry(
|
|
175
176
|
entry.entryName,
|
|
177
|
+
// options,
|
|
176
178
|
hackParameters
|
|
177
179
|
);
|
|
178
180
|
const documentHtmlOptions = templateContent ? {
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getEntryOptions,
|
|
3
3
|
createRuntimeExportsUtils,
|
|
4
|
-
PLUGIN_SCHEMAS
|
|
4
|
+
PLUGIN_SCHEMAS,
|
|
5
|
+
isRouterV5 as isV5
|
|
5
6
|
} from "@modern-js/utils";
|
|
6
7
|
const PLUGIN_IDENTIFIER = "router";
|
|
7
8
|
const ROUTES_IDENTIFIER = "routes";
|
|
8
|
-
const isV5 = (config) => {
|
|
9
|
-
var _a, _b;
|
|
10
|
-
return ((_b = (_a = config == null ? void 0 : config.runtime) == null ? void 0 : _a.router) == null ? void 0 : _b.mode) === "react-router-5";
|
|
11
|
-
};
|
|
12
9
|
var cli_default = () => ({
|
|
13
10
|
name: "@modern-js/plugin-router",
|
|
14
11
|
required: ["@modern-js/runtime"],
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
const DefaultNotFound = () => /* @__PURE__ */ jsx(
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
2
|
+
const DefaultNotFound = () => /* @__PURE__ */ jsx(
|
|
3
|
+
"div",
|
|
4
|
+
{
|
|
5
|
+
style: {
|
|
6
|
+
margin: "150px auto",
|
|
7
|
+
textAlign: "center",
|
|
8
|
+
display: "flex",
|
|
9
|
+
alignItems: "center",
|
|
10
|
+
justifyContent: "center"
|
|
11
|
+
},
|
|
12
|
+
children: "404"
|
|
13
|
+
}
|
|
14
|
+
);
|
|
12
15
|
export {
|
|
13
16
|
DefaultNotFound
|
|
14
17
|
};
|
|
@@ -56,12 +56,7 @@ const routerPlugin = ({
|
|
|
56
56
|
const baseUrl = ((_a = window._SERVER_DATA) == null ? void 0 : _a.router.baseUrl) || select(location.pathname);
|
|
57
57
|
const _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
|
|
58
58
|
const router = supportHtml5History ? createBrowserRouter(routes, { basename: _basename }) : createHashRouter(routes, { basename: _basename });
|
|
59
|
-
return /* @__PURE__ */ jsx(App, {
|
|
60
|
-
...props,
|
|
61
|
-
children: /* @__PURE__ */ jsx(RouterProvider, {
|
|
62
|
-
router
|
|
63
|
-
})
|
|
64
|
-
});
|
|
59
|
+
return /* @__PURE__ */ jsx(App, { ...props, children: /* @__PURE__ */ jsx(RouterProvider, { router }) });
|
|
65
60
|
};
|
|
66
61
|
};
|
|
67
62
|
const RouteApp = getRouteApp();
|
|
@@ -109,21 +109,24 @@ const routerPlugin = ({
|
|
|
109
109
|
data,
|
|
110
110
|
{ isJSON: true }
|
|
111
111
|
)};`;
|
|
112
|
-
return /* @__PURE__ */ jsxs(App, {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
return /* @__PURE__ */ jsxs(App, { ...props, children: [
|
|
113
|
+
/* @__PURE__ */ jsx(
|
|
114
|
+
StaticRouterProvider,
|
|
115
|
+
{
|
|
116
116
|
router,
|
|
117
117
|
context: routerContext,
|
|
118
118
|
hydrate: false
|
|
119
|
-
}
|
|
120
|
-
|
|
119
|
+
}
|
|
120
|
+
),
|
|
121
|
+
/* @__PURE__ */ jsx(
|
|
122
|
+
"script",
|
|
123
|
+
{
|
|
121
124
|
suppressHydrationWarning: true,
|
|
122
125
|
id: "the-nonce",
|
|
123
126
|
dangerouslySetInnerHTML: { __html: hydrateScript }
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
});
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
] });
|
|
127
130
|
};
|
|
128
131
|
};
|
|
129
132
|
const RouteApp = getRouteApp();
|