@modern-js/runtime 2.15.1-alpha.2 → 2.16.1-alpha.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 +19 -0
- package/dist/cjs/cli/index.js +32 -48
- package/dist/cjs/common.js +13 -27
- package/dist/cjs/config.js +4 -15
- package/dist/cjs/core/appConfig.js +13 -26
- package/dist/cjs/core/compatible.js +170 -158
- package/dist/cjs/core/index.js +38 -45
- package/dist/cjs/core/loader/index.js +12 -35
- package/dist/cjs/core/loader/loaderManager.js +42 -56
- package/dist/cjs/core/loader/useLoader.js +80 -105
- package/dist/cjs/core/plugin.js +28 -40
- package/dist/cjs/core/types.js +4 -15
- package/dist/cjs/document/Body.js +61 -37
- package/dist/cjs/document/Comment.js +22 -32
- package/dist/cjs/document/DocumentContext.js +14 -37
- package/dist/cjs/document/DocumentStructureContext.js +14 -37
- package/dist/cjs/document/Head.js +71 -40
- package/dist/cjs/document/Html.js +46 -58
- package/dist/cjs/document/Links.js +18 -28
- package/dist/cjs/document/Root.js +73 -44
- package/dist/cjs/document/Script.js +22 -32
- package/dist/cjs/document/Scripts.js +18 -28
- package/dist/cjs/document/cli/index.js +161 -207
- package/dist/cjs/document/constants.js +36 -75
- package/dist/cjs/document/index.js +28 -27
- package/dist/cjs/exports/head.js +27 -37
- package/dist/cjs/exports/loadable.js +27 -37
- package/dist/cjs/exports/server.js +7 -25
- package/dist/cjs/exports/styled.js +27 -37
- package/dist/cjs/index.js +22 -42
- package/dist/cjs/router/cli/index.js +91 -114
- package/dist/cjs/router/index.js +32 -39
- package/dist/cjs/router/runtime/DefaultNotFound.js +23 -38
- package/dist/cjs/router/runtime/DeferredDataScripts.js +8 -24
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +69 -112
- package/dist/cjs/router/runtime/PrefetchLink.js +117 -96
- package/dist/cjs/router/runtime/fetch.js +7 -25
- package/dist/cjs/router/runtime/fetch.node.js +7 -25
- package/dist/cjs/router/runtime/fetch.worker.js +7 -25
- package/dist/cjs/router/runtime/hooks.js +8 -26
- package/dist/cjs/router/runtime/index.js +97 -149
- package/dist/cjs/router/runtime/plugin.js +56 -76
- package/dist/cjs/router/runtime/plugin.node.js +95 -74
- package/dist/cjs/router/runtime/server.js +18 -17
- package/dist/cjs/router/runtime/types.js +4 -15
- package/dist/cjs/router/runtime/utils.js +57 -83
- package/dist/cjs/router/runtime/withRouter.js +24 -39
- package/dist/cjs/runtimeContext.js +14 -27
- package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +75 -59
- package/dist/cjs/ssr/cli/index.js +120 -150
- package/dist/cjs/ssr/index.js +149 -132
- package/dist/cjs/ssr/index.node.js +73 -74
- package/dist/cjs/ssr/prefetch.js +51 -59
- package/dist/cjs/ssr/react/index.js +15 -28
- package/dist/cjs/ssr/react/nossr/index.js +51 -43
- package/dist/cjs/ssr/react/prerender/index.js +93 -59
- package/dist/cjs/ssr/react/prerender/type.js +4 -15
- package/dist/cjs/ssr/react/prerender/util.js +32 -51
- package/dist/cjs/ssr/react/withCallback/index.js +53 -29
- package/dist/cjs/ssr/serverRender/helmet.js +15 -26
- package/dist/cjs/ssr/serverRender/index.js +14 -32
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +15 -34
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.share.js +12 -28
- package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +28 -55
- package/dist/cjs/ssr/serverRender/renderToStream/index.js +23 -48
- package/dist/cjs/ssr/serverRender/renderToStream/loadable.js +13 -32
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +33 -64
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +26 -54
- package/dist/cjs/ssr/serverRender/renderToStream/styledComponent.js +9 -27
- package/dist/cjs/ssr/serverRender/renderToStream/template.js +11 -32
- package/dist/cjs/ssr/serverRender/renderToStream/type.js +4 -15
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +133 -99
- package/dist/cjs/ssr/serverRender/renderToString/index.js +21 -48
- package/dist/cjs/ssr/serverRender/renderToString/loadable.js +20 -45
- package/dist/cjs/ssr/serverRender/renderToString/reduce.js +13 -25
- package/dist/cjs/ssr/serverRender/renderToString/styledComponent.js +9 -27
- package/dist/cjs/ssr/serverRender/renderToString/template.js +42 -37
- package/dist/cjs/ssr/serverRender/renderToString/type.js +10 -28
- package/dist/cjs/ssr/serverRender/time.js +7 -25
- package/dist/cjs/ssr/serverRender/time.worker.js +11 -26
- package/dist/cjs/ssr/serverRender/types.js +7 -25
- package/dist/cjs/ssr/serverRender/utils.js +12 -27
- package/dist/cjs/ssr/utils.js +26 -51
- package/dist/cjs/state/cli/index.js +71 -95
- package/dist/cjs/state/index.js +32 -39
- package/dist/cjs/state/plugins.js +26 -46
- package/dist/cjs/state/runtime/index.js +27 -37
- package/dist/cjs/state/runtime/plugin.js +82 -84
- package/dist/cjs/state/types.js +4 -15
- package/dist/esm/cli/index.js +184 -176
- package/dist/esm/common.js +4 -5
- package/dist/esm/config.js +1 -1
- package/dist/esm/core/appConfig.js +8 -7
- package/dist/esm/core/compatible.js +470 -448
- package/dist/esm/core/index.js +3 -4
- package/dist/esm/core/loader/index.js +1 -2
- package/dist/esm/core/loader/loaderManager.js +391 -366
- package/dist/esm/core/loader/useLoader.js +173 -162
- package/dist/esm/core/plugin.js +162 -155
- package/dist/esm/core/types.js +1 -1
- package/dist/esm/document/Body.js +12 -13
- package/dist/esm/document/Comment.js +11 -12
- package/dist/esm/document/DocumentContext.js +4 -5
- package/dist/esm/document/DocumentStructureContext.js +6 -7
- package/dist/esm/document/Head.js +16 -17
- package/dist/esm/document/Html.js +84 -85
- package/dist/esm/document/Links.js +5 -6
- package/dist/esm/document/Root.js +20 -21
- package/dist/esm/document/Script.js +12 -13
- package/dist/esm/document/Scripts.js +5 -6
- package/dist/esm/document/cli/index.js +390 -371
- package/dist/esm/document/constants.js +33 -34
- package/dist/esm/exports/head.js +1 -2
- package/dist/esm/exports/loadable.js +1 -2
- package/dist/esm/exports/server.js +2 -3
- package/dist/esm/exports/styled.js +1 -2
- package/dist/esm/index.js +2 -3
- package/dist/esm/router/cli/index.js +141 -141
- package/dist/esm/router/index.js +2 -3
- package/dist/esm/router/runtime/DefaultNotFound.js +12 -13
- package/dist/esm/router/runtime/DeferredDataScripts.js +4 -4
- package/dist/esm/router/runtime/DeferredDataScripts.node.js +154 -143
- package/dist/esm/router/runtime/PrefetchLink.js +418 -394
- package/dist/esm/router/runtime/fetch.js +2 -1
- package/dist/esm/router/runtime/fetch.worker.js +2 -1
- package/dist/esm/router/runtime/index.js +62 -9
- package/dist/esm/router/runtime/plugin.js +141 -142
- package/dist/esm/router/runtime/plugin.node.js +372 -353
- package/dist/esm/router/runtime/types.js +1 -1
- package/dist/esm/router/runtime/utils.js +295 -279
- package/dist/esm/router/runtime/withRouter.js +57 -58
- package/dist/esm/runtimeContext.js +2 -3
- package/dist/esm/ssr/cli/babel-plugin-ssr-loader-id.js +105 -118
- package/dist/esm/ssr/cli/index.js +146 -146
- package/dist/esm/ssr/index.js +303 -297
- package/dist/esm/ssr/index.node.js +227 -221
- package/dist/esm/ssr/prefetch.js +192 -186
- package/dist/esm/ssr/react/index.js +2 -3
- package/dist/esm/ssr/react/nossr/index.js +58 -47
- package/dist/esm/ssr/react/prerender/index.js +214 -206
- package/dist/esm/ssr/react/prerender/type.js +1 -1
- package/dist/esm/ssr/react/prerender/util.js +91 -92
- package/dist/esm/ssr/react/withCallback/index.js +13 -14
- package/dist/esm/ssr/serverRender/helmet.js +34 -35
- package/dist/esm/ssr/serverRender/index.js +167 -160
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +58 -59
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -6
- package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +106 -93
- package/dist/esm/ssr/serverRender/renderToStream/index.js +157 -151
- package/dist/esm/ssr/serverRender/renderToStream/loadable.js +17 -18
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +117 -117
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +286 -279
- package/dist/esm/ssr/serverRender/renderToStream/styledComponent.js +8 -9
- package/dist/esm/ssr/serverRender/renderToStream/template.js +62 -51
- package/dist/esm/ssr/serverRender/renderToStream/type.js +1 -1
- package/dist/esm/ssr/serverRender/renderToString/entry.js +393 -383
- package/dist/esm/ssr/serverRender/renderToString/index.js +158 -152
- package/dist/esm/ssr/serverRender/renderToString/loadable.js +46 -47
- package/dist/esm/ssr/serverRender/renderToString/reduce.js +7 -8
- package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +6 -7
- package/dist/esm/ssr/serverRender/renderToString/template.js +142 -128
- package/dist/esm/ssr/serverRender/renderToString/type.js +6 -7
- package/dist/esm/ssr/serverRender/time.js +57 -46
- package/dist/esm/ssr/serverRender/time.worker.js +72 -61
- package/dist/esm/ssr/serverRender/utils.js +14 -15
- package/dist/esm/ssr/utils.js +128 -117
- package/dist/esm/state/cli/index.js +67 -67
- package/dist/esm/state/index.js +2 -3
- package/dist/esm/state/plugins.js +7 -8
- package/dist/esm/state/runtime/index.js +1 -2
- package/dist/esm/state/runtime/plugin.js +177 -166
- package/dist/esm/state/types.js +1 -1
- package/dist/esm-node/cli/index.js +11 -9
- package/dist/esm-node/common.js +3 -8
- package/dist/esm-node/config.js +1 -0
- package/dist/esm-node/core/appConfig.js +2 -6
- package/dist/esm-node/core/compatible.js +104 -120
- package/dist/esm-node/core/index.js +3 -13
- package/dist/esm-node/core/loader/index.js +1 -4
- package/dist/esm-node/core/loader/loaderManager.js +25 -25
- package/dist/esm-node/core/loader/useLoader.js +60 -74
- package/dist/esm-node/core/plugin.js +9 -15
- package/dist/esm-node/core/types.js +1 -0
- package/dist/esm-node/document/Body.js +11 -15
- package/dist/esm-node/document/Comment.js +10 -14
- package/dist/esm-node/document/DocumentContext.js +1 -4
- package/dist/esm-node/document/DocumentStructureContext.js +1 -4
- package/dist/esm-node/document/Head.js +14 -14
- package/dist/esm-node/document/Html.js +31 -34
- package/dist/esm-node/document/Links.js +5 -6
- package/dist/esm-node/document/Root.js +19 -21
- package/dist/esm-node/document/Script.js +10 -14
- package/dist/esm-node/document/Scripts.js +5 -6
- package/dist/esm-node/document/cli/index.js +136 -184
- package/dist/esm-node/document/constants.js +22 -52
- package/dist/esm-node/exports/head.js +1 -4
- package/dist/esm-node/exports/loadable.js +1 -4
- package/dist/esm-node/exports/server.js +1 -4
- package/dist/esm-node/exports/styled.js +1 -4
- package/dist/esm-node/index.js +2 -22
- package/dist/esm-node/router/cli/index.js +83 -98
- package/dist/esm-node/router/index.js +2 -6
- package/dist/esm-node/router/runtime/DefaultNotFound.js +11 -17
- package/dist/esm-node/router/runtime/DeferredDataScripts.js +1 -4
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +51 -85
- package/dist/esm-node/router/runtime/PrefetchLink.js +53 -59
- package/dist/esm-node/router/runtime/fetch.js +1 -3
- package/dist/esm-node/router/runtime/fetch.node.js +1 -3
- package/dist/esm-node/router/runtime/fetch.worker.js +1 -3
- package/dist/esm-node/router/runtime/hooks.js +1 -3
- package/dist/esm-node/router/runtime/index.js +10 -69
- package/dist/esm-node/router/runtime/plugin.js +27 -41
- package/dist/esm-node/router/runtime/plugin.node.js +24 -32
- package/dist/esm-node/router/runtime/types.js +1 -0
- package/dist/esm-node/router/runtime/utils.js +34 -50
- package/dist/esm-node/router/runtime/withRouter.js +8 -14
- package/dist/esm-node/runtimeContext.js +2 -6
- package/dist/esm-node/ssr/cli/babel-plugin-ssr-loader-id.js +99 -119
- package/dist/esm-node/ssr/cli/index.js +106 -125
- package/dist/esm-node/ssr/index.js +112 -96
- package/dist/esm-node/ssr/index.node.js +39 -39
- package/dist/esm-node/ssr/prefetch.js +40 -35
- package/dist/esm-node/ssr/react/index.js +2 -6
- package/dist/esm-node/ssr/react/nossr/index.js +2 -9
- package/dist/esm-node/ssr/react/prerender/index.js +32 -23
- package/dist/esm-node/ssr/react/prerender/type.js +1 -0
- package/dist/esm-node/ssr/react/prerender/util.js +23 -33
- package/dist/esm-node/ssr/react/withCallback/index.js +4 -5
- package/dist/esm-node/ssr/serverRender/helmet.js +2 -5
- package/dist/esm-node/ssr/serverRender/index.js +5 -10
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -9
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +3 -10
- package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +7 -17
- package/dist/esm-node/ssr/serverRender/renderToStream/index.js +2 -7
- package/dist/esm-node/ssr/serverRender/renderToStream/loadable.js +4 -8
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +21 -39
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +16 -31
- package/dist/esm-node/ssr/serverRender/renderToStream/styledComponent.js +1 -4
- package/dist/esm-node/ssr/serverRender/renderToStream/template.js +2 -8
- package/dist/esm-node/ssr/serverRender/renderToStream/type.js +1 -0
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +50 -39
- package/dist/esm-node/ssr/serverRender/renderToString/index.js +1 -8
- package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +8 -18
- package/dist/esm-node/ssr/serverRender/renderToString/reduce.js +1 -4
- package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +1 -4
- package/dist/esm-node/ssr/serverRender/renderToString/template.js +32 -18
- package/dist/esm-node/ssr/serverRender/renderToString/type.js +3 -6
- package/dist/esm-node/ssr/serverRender/time.js +1 -4
- package/dist/esm-node/ssr/serverRender/time.worker.js +5 -5
- package/dist/esm-node/ssr/serverRender/types.js +1 -3
- package/dist/esm-node/ssr/serverRender/utils.js +4 -10
- package/dist/esm-node/ssr/utils.js +8 -19
- package/dist/esm-node/state/cli/index.js +63 -78
- package/dist/esm-node/state/index.js +2 -6
- package/dist/esm-node/state/plugins.js +4 -10
- package/dist/esm-node/state/runtime/index.js +1 -4
- package/dist/esm-node/state/runtime/plugin.js +47 -44
- package/dist/esm-node/state/types.js +1 -0
- package/dist/types/router/runtime/index.d.ts +1 -1
- package/package.json +14 -10
- package/types/model.d.ts +1 -0
|
@@ -1,49 +1,83 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var entry_exports = {};
|
|
29
|
-
__export(entry_exports, {
|
|
30
|
-
default: () => Entry
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => Entry
|
|
31
8
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
9
|
+
const _react = /* @__PURE__ */ _interop_require_default(require("react"));
|
|
10
|
+
const _server = /* @__PURE__ */ _interop_require_default(require("react-dom/server"));
|
|
11
|
+
const _serialize = require("@modern-js/utils/universal/serialize");
|
|
12
|
+
const _reacthelmet = /* @__PURE__ */ _interop_require_default(require("react-helmet"));
|
|
13
|
+
const _utils = require("../../../router/runtime/utils");
|
|
14
|
+
const _helmet = /* @__PURE__ */ _interop_require_default(require("../helmet"));
|
|
15
|
+
const _types = require("../types");
|
|
16
|
+
const _time = require("../time");
|
|
17
|
+
const _prefetch = /* @__PURE__ */ _interop_require_default(require("../../prefetch"));
|
|
18
|
+
const _utils1 = require("../utils");
|
|
19
|
+
const _template = require("./template");
|
|
20
|
+
const _reduce = require("./reduce");
|
|
21
|
+
const _loadable = /* @__PURE__ */ _interop_require_wildcard(require("./loadable"));
|
|
22
|
+
const _styledComponent = /* @__PURE__ */ _interop_require_wildcard(require("./styledComponent"));
|
|
23
|
+
function _define_property(obj, key, value) {
|
|
24
|
+
if (key in obj) {
|
|
25
|
+
Object.defineProperty(obj, key, {
|
|
26
|
+
value,
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true,
|
|
29
|
+
writable: true
|
|
30
|
+
});
|
|
31
|
+
} else {
|
|
32
|
+
obj[key] = value;
|
|
33
|
+
}
|
|
34
|
+
return obj;
|
|
35
|
+
}
|
|
36
|
+
function _interop_require_default(obj) {
|
|
37
|
+
return obj && obj.__esModule ? obj : {
|
|
38
|
+
default: obj
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
42
|
+
if (typeof WeakMap !== "function")
|
|
43
|
+
return null;
|
|
44
|
+
var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
|
|
45
|
+
var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
|
|
46
|
+
return (_getRequireWildcardCache = function(nodeInterop2) {
|
|
47
|
+
return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
|
|
48
|
+
})(nodeInterop);
|
|
49
|
+
}
|
|
50
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
51
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
52
|
+
return obj;
|
|
53
|
+
}
|
|
54
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
55
|
+
return {
|
|
56
|
+
default: obj
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
60
|
+
if (cache && cache.has(obj)) {
|
|
61
|
+
return cache.get(obj);
|
|
62
|
+
}
|
|
63
|
+
var newObj = {};
|
|
64
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
65
|
+
for (var key in obj) {
|
|
66
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
67
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
68
|
+
if (desc && (desc.get || desc.set)) {
|
|
69
|
+
Object.defineProperty(newObj, key, desc);
|
|
70
|
+
} else {
|
|
71
|
+
newObj[key] = obj[key];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
newObj.default = obj;
|
|
76
|
+
if (cache) {
|
|
77
|
+
cache.set(obj, newObj);
|
|
78
|
+
}
|
|
79
|
+
return newObj;
|
|
80
|
+
}
|
|
47
81
|
const buildTemplateData = (context, data, renderLevel) => {
|
|
48
82
|
const { request, enableUnsafeCtx } = context;
|
|
49
83
|
const unsafeContext = {
|
|
@@ -65,56 +99,29 @@ const buildTemplateData = (context, data, renderLevel) => {
|
|
|
65
99
|
};
|
|
66
100
|
};
|
|
67
101
|
class Entry {
|
|
68
|
-
constructor(options) {
|
|
69
|
-
const { ctx, config } = options;
|
|
70
|
-
const {
|
|
71
|
-
entryName,
|
|
72
|
-
template,
|
|
73
|
-
request: { host }
|
|
74
|
-
} = ctx;
|
|
75
|
-
this.fragments = (0, import_template.toFragments)(template, entryName);
|
|
76
|
-
this.entryName = entryName;
|
|
77
|
-
this.host = host;
|
|
78
|
-
this.App = options.App;
|
|
79
|
-
this.pluginConfig = config;
|
|
80
|
-
this.metrics = ctx.metrics;
|
|
81
|
-
this.logger = ctx.logger;
|
|
82
|
-
this.result = {
|
|
83
|
-
renderLevel: import_types.RenderLevel.CLIENT_RENDER,
|
|
84
|
-
html: "",
|
|
85
|
-
chunksMap: {
|
|
86
|
-
js: "",
|
|
87
|
-
css: ""
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
102
|
async renderToHtml(context) {
|
|
92
|
-
var
|
|
103
|
+
var _ssrContext_redirection, _ssrContext_redirection1, _ssrContext_redirection2;
|
|
93
104
|
const ssrContext = context.ssrContext;
|
|
94
|
-
if ((
|
|
105
|
+
if ((_ssrContext_redirection = ssrContext.redirection) === null || _ssrContext_redirection === void 0 ? void 0 : _ssrContext_redirection.url) {
|
|
95
106
|
return "";
|
|
96
107
|
}
|
|
97
108
|
const prefetchData = await this.prefetch(context);
|
|
98
|
-
if ((
|
|
109
|
+
if ((_ssrContext_redirection1 = ssrContext.redirection) === null || _ssrContext_redirection1 === void 0 ? void 0 : _ssrContext_redirection1.url) {
|
|
99
110
|
return "";
|
|
100
111
|
}
|
|
101
|
-
if (this.result.renderLevel >=
|
|
112
|
+
if (this.result.renderLevel >= _types.RenderLevel.SERVER_PREFETCH) {
|
|
102
113
|
this.result.html = this.renderToString(context);
|
|
103
114
|
}
|
|
104
|
-
if ((
|
|
115
|
+
if ((_ssrContext_redirection2 = ssrContext.redirection) === null || _ssrContext_redirection2 === void 0 ? void 0 : _ssrContext_redirection2.url) {
|
|
105
116
|
return "";
|
|
106
117
|
}
|
|
107
118
|
const { routerContext } = context;
|
|
108
119
|
const routerData = routerContext ? {
|
|
109
120
|
loaderData: routerContext.loaderData,
|
|
110
|
-
errors: (0,
|
|
121
|
+
errors: (0, _utils.serializeErrors)(routerContext.errors)
|
|
111
122
|
} : void 0;
|
|
112
123
|
let html = "";
|
|
113
|
-
const templateData = buildTemplateData(
|
|
114
|
-
ssrContext,
|
|
115
|
-
prefetchData,
|
|
116
|
-
this.result.renderLevel
|
|
117
|
-
);
|
|
124
|
+
const templateData = buildTemplateData(ssrContext, prefetchData, this.result.renderLevel);
|
|
118
125
|
const SSRData = this.getSSRDataScript(templateData, routerData);
|
|
119
126
|
for (const fragment of this.fragments) {
|
|
120
127
|
if (fragment.isVariable && fragment.content === "SSRDataScript") {
|
|
@@ -123,20 +130,20 @@ class Entry {
|
|
|
123
130
|
html += fragment.getValue(this.result);
|
|
124
131
|
}
|
|
125
132
|
}
|
|
126
|
-
const helmetData =
|
|
127
|
-
return helmetData ? (0,
|
|
133
|
+
const helmetData = _reacthelmet.default.renderStatic();
|
|
134
|
+
return helmetData ? (0, _helmet.default)(html, helmetData) : html;
|
|
128
135
|
}
|
|
129
136
|
async prefetch(context) {
|
|
130
137
|
let prefetchData;
|
|
131
|
-
const end = (0,
|
|
138
|
+
const end = (0, _time.time)();
|
|
132
139
|
try {
|
|
133
|
-
prefetchData = await (0,
|
|
134
|
-
this.result.renderLevel =
|
|
140
|
+
prefetchData = await (0, _prefetch.default)(this.App, context);
|
|
141
|
+
this.result.renderLevel = _types.RenderLevel.SERVER_PREFETCH;
|
|
135
142
|
const prefetchCost = end();
|
|
136
143
|
this.logger.debug(`App Prefetch cost = %d ms`, prefetchCost);
|
|
137
144
|
this.metrics.emitTimer("app.prefetch.cost", prefetchCost);
|
|
138
145
|
} catch (e) {
|
|
139
|
-
this.result.renderLevel =
|
|
146
|
+
this.result.renderLevel = _types.RenderLevel.CLIENT_RENDER;
|
|
140
147
|
this.logger.error("App Prefetch Render", e);
|
|
141
148
|
this.metrics.emitCounter("app.prefetch.render.error", 1);
|
|
142
149
|
}
|
|
@@ -144,11 +151,13 @@ class Entry {
|
|
|
144
151
|
}
|
|
145
152
|
renderToString(context) {
|
|
146
153
|
let html = "";
|
|
147
|
-
const end = (0,
|
|
154
|
+
const end = (0, _time.time)();
|
|
148
155
|
const { ssrContext } = context;
|
|
149
156
|
try {
|
|
150
|
-
const App =
|
|
151
|
-
context: Object.assign(context, {
|
|
157
|
+
const App = _react.default.createElement(this.App, {
|
|
158
|
+
context: Object.assign(context, {
|
|
159
|
+
ssr: true
|
|
160
|
+
})
|
|
152
161
|
});
|
|
153
162
|
const renderContext = {
|
|
154
163
|
stats: ssrContext.loadableStats,
|
|
@@ -157,15 +166,15 @@ class Entry {
|
|
|
157
166
|
entryName: this.entryName,
|
|
158
167
|
config: this.pluginConfig
|
|
159
168
|
};
|
|
160
|
-
html = (0,
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
(jsx) =>
|
|
169
|
+
html = (0, _reduce.reduce)(App, renderContext, [
|
|
170
|
+
_styledComponent.toHtml,
|
|
171
|
+
_loadable.toHtml,
|
|
172
|
+
(jsx) => _server.default.renderToString(jsx)
|
|
164
173
|
]);
|
|
165
174
|
const cost = end();
|
|
166
175
|
this.logger.debug("App Render To HTML cost = %d ms", cost);
|
|
167
176
|
this.metrics.emitTimer("app.render.html.cost", cost);
|
|
168
|
-
this.result.renderLevel =
|
|
177
|
+
this.result.renderLevel = _types.RenderLevel.SERVER_RENDER;
|
|
169
178
|
} catch (e) {
|
|
170
179
|
this.logger.error("App Render To HTML", e);
|
|
171
180
|
this.metrics.emitCounter("app.render.html.error", 1);
|
|
@@ -174,18 +183,43 @@ class Entry {
|
|
|
174
183
|
}
|
|
175
184
|
getSSRDataScript(templateData, routerData) {
|
|
176
185
|
const useInlineScript = this.pluginConfig.inlineScript !== false;
|
|
177
|
-
const ssrData = (0,
|
|
178
|
-
let ssrDataScripts = useInlineScript ? `<script>window._SSR_DATA = ${ssrData}</script>` : `<script type="application/json" id="${
|
|
186
|
+
const ssrData = (0, _serialize.serializeJson)(templateData);
|
|
187
|
+
let ssrDataScripts = useInlineScript ? `<script>window._SSR_DATA = ${ssrData}</script>` : `<script type="application/json" id="${_utils1.SSR_DATA_JSON_ID}">${ssrData}</script>`;
|
|
179
188
|
if (routerData) {
|
|
180
|
-
const serializedRouterData = (0,
|
|
189
|
+
const serializedRouterData = (0, _serialize.serializeJson)(routerData);
|
|
181
190
|
ssrDataScripts += useInlineScript ? `
|
|
182
191
|
<script>window._ROUTER_DATA = ${serializedRouterData}</script>` : `
|
|
183
|
-
<script type="application/json" id="${
|
|
192
|
+
<script type="application/json" id="${_utils1.ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>`;
|
|
184
193
|
}
|
|
185
194
|
return {
|
|
186
195
|
SSRDataScript: ssrDataScripts
|
|
187
196
|
};
|
|
188
197
|
}
|
|
198
|
+
constructor(options) {
|
|
199
|
+
_define_property(this, "entryName", void 0);
|
|
200
|
+
_define_property(this, "result", void 0);
|
|
201
|
+
_define_property(this, "metrics", void 0);
|
|
202
|
+
_define_property(this, "logger", void 0);
|
|
203
|
+
_define_property(this, "App", void 0);
|
|
204
|
+
_define_property(this, "fragments", void 0);
|
|
205
|
+
_define_property(this, "pluginConfig", void 0);
|
|
206
|
+
_define_property(this, "host", void 0);
|
|
207
|
+
const { ctx, config } = options;
|
|
208
|
+
const { entryName, template, request: { host } } = ctx;
|
|
209
|
+
this.fragments = (0, _template.toFragments)(template, entryName);
|
|
210
|
+
this.entryName = entryName;
|
|
211
|
+
this.host = host;
|
|
212
|
+
this.App = options.App;
|
|
213
|
+
this.pluginConfig = config;
|
|
214
|
+
this.metrics = ctx.metrics;
|
|
215
|
+
this.logger = ctx.logger;
|
|
216
|
+
this.result = {
|
|
217
|
+
renderLevel: _types.RenderLevel.CLIENT_RENDER,
|
|
218
|
+
html: "",
|
|
219
|
+
chunksMap: {
|
|
220
|
+
js: "",
|
|
221
|
+
css: ""
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
}
|
|
189
225
|
}
|
|
190
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
191
|
-
0 && (module.exports = {});
|
|
@@ -1,65 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var renderToString_exports = {};
|
|
29
|
-
__export(renderToString_exports, {
|
|
30
|
-
render: () => render
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
31
4
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
5
|
+
Object.defineProperty(exports, "render", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => render
|
|
8
|
+
});
|
|
9
|
+
const _ssr = require("@modern-js/utils/ssr");
|
|
10
|
+
const _prerender = require("../../react/prerender");
|
|
11
|
+
const _time = require("../time");
|
|
12
|
+
const _entry = /* @__PURE__ */ _interop_require_default(require("./entry"));
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const render = ({ App, context, config }) => {
|
|
42
19
|
const ssrContext = context.ssrContext;
|
|
43
|
-
return (0,
|
|
44
|
-
const entry = new
|
|
20
|
+
return (0, _ssr.run)(ssrContext.request.headers, async () => {
|
|
21
|
+
const entry = new _entry.default({
|
|
45
22
|
ctx: ssrContext,
|
|
46
23
|
App,
|
|
47
24
|
config
|
|
48
25
|
});
|
|
49
26
|
entry.metrics.emitCounter("app.visit.count", 1);
|
|
50
|
-
const end = (0,
|
|
27
|
+
const end = (0, _time.time)();
|
|
51
28
|
const html = await entry.renderToHtml(context);
|
|
52
29
|
const cost = end();
|
|
53
30
|
entry.logger.info("App Render Total cost = %d ms", cost);
|
|
54
31
|
entry.metrics.emitTimer("app.render.cost", cost);
|
|
55
|
-
const cacheConfig =
|
|
32
|
+
const cacheConfig = _prerender.PreRender.config();
|
|
56
33
|
if (cacheConfig) {
|
|
57
34
|
context.ssrContext.cacheConfig = cacheConfig;
|
|
58
35
|
}
|
|
59
36
|
return html;
|
|
60
37
|
});
|
|
61
38
|
};
|
|
62
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
63
|
-
0 && (module.exports = {
|
|
64
|
-
render
|
|
65
|
-
});
|
|
@@ -1,71 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 loadable_exports = {};
|
|
19
|
-
__export(loadable_exports, {
|
|
20
|
-
toHtml: () => toHtml
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
21
4
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
5
|
+
Object.defineProperty(exports, "toHtml", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => toHtml
|
|
8
|
+
});
|
|
9
|
+
const _server = require("@loadable/server");
|
|
10
|
+
const _utils = require("../../utils");
|
|
11
|
+
const _utils1 = require("../utils");
|
|
26
12
|
const extname = (uri) => {
|
|
27
13
|
if (typeof uri !== "string" || !uri.includes(".")) {
|
|
28
14
|
return "";
|
|
29
15
|
}
|
|
30
|
-
return `.${uri
|
|
16
|
+
return `.${uri === null || uri === void 0 ? void 0 : uri.split(".").pop()}` || "";
|
|
31
17
|
};
|
|
32
18
|
const toHtml = (jsx, renderer, next) => {
|
|
33
|
-
const {
|
|
34
|
-
stats,
|
|
35
|
-
result: { chunksMap },
|
|
36
|
-
host,
|
|
37
|
-
config = {}
|
|
38
|
-
} = renderer;
|
|
19
|
+
const { stats, result: { chunksMap }, host, config = {} } = renderer;
|
|
39
20
|
if (!stats || chunksMap.js) {
|
|
40
21
|
return next(jsx);
|
|
41
22
|
}
|
|
42
|
-
const extractor = new
|
|
23
|
+
const extractor = new _server.ChunkExtractor({
|
|
43
24
|
stats,
|
|
44
|
-
entrypoints: [
|
|
25
|
+
entrypoints: [
|
|
26
|
+
renderer.entryName
|
|
27
|
+
]
|
|
45
28
|
});
|
|
46
29
|
const html = next(extractor.collectChunks(jsx));
|
|
47
30
|
const chunks = extractor.getChunkAssets(extractor.chunks);
|
|
48
|
-
chunksMap.js = (chunksMap.js || "") + (0,
|
|
31
|
+
chunksMap.js = (chunksMap.js || "") + (0, _utils1.getLoadableScripts)(extractor);
|
|
49
32
|
for (const v of chunks) {
|
|
50
33
|
const fileType = extname(v.url).slice(1);
|
|
51
34
|
if (fileType === "js") {
|
|
52
35
|
const props = [];
|
|
53
36
|
const { crossorigin } = config;
|
|
54
|
-
if (crossorigin && (0,
|
|
55
|
-
props.push(
|
|
56
|
-
`crossorigin="${crossorigin === true ? "anonymous" : crossorigin}"`
|
|
57
|
-
);
|
|
37
|
+
if (crossorigin && (0, _utils.isCrossOrigin)(v.url, host)) {
|
|
38
|
+
props.push(`crossorigin="${crossorigin === true ? "anonymous" : crossorigin}"`);
|
|
58
39
|
}
|
|
59
|
-
chunksMap[fileType] += `<script src="${v.url}" ${props.join(
|
|
60
|
-
" "
|
|
61
|
-
)}></script>`;
|
|
40
|
+
chunksMap[fileType] += `<script src="${v.url}" ${props.join(" ")}></script>`;
|
|
62
41
|
} else if (fileType === "css") {
|
|
63
42
|
chunksMap[fileType] += `<link href="${v.url}" rel="stylesheet" />`;
|
|
64
43
|
}
|
|
65
44
|
}
|
|
66
45
|
return html;
|
|
67
46
|
};
|
|
68
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
69
|
-
0 && (module.exports = {
|
|
70
|
-
toHtml
|
|
71
|
-
});
|
|
@@ -1,31 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 reduce_exports = {};
|
|
19
|
-
__export(reduce_exports, {
|
|
20
|
-
reduce: () => reduce
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
21
4
|
});
|
|
22
|
-
|
|
5
|
+
Object.defineProperty(exports, "reduce", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => reduce
|
|
8
|
+
});
|
|
9
|
+
const _react = /* @__PURE__ */ _interop_require_default(require("react"));
|
|
10
|
+
function _interop_require_default(obj) {
|
|
11
|
+
return obj && obj.__esModule ? obj : {
|
|
12
|
+
default: obj
|
|
13
|
+
};
|
|
14
|
+
}
|
|
23
15
|
function reduce(jsx, renderer, middleware) {
|
|
24
16
|
let index = 0;
|
|
25
17
|
const createNext = () => (App) => middleware[index++](App, renderer, createNext());
|
|
26
18
|
return createNext()(jsx);
|
|
27
19
|
}
|
|
28
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
29
|
-
0 && (module.exports = {
|
|
30
|
-
reduce
|
|
31
|
-
});
|
|
@@ -1,34 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 styledComponent_exports = {};
|
|
19
|
-
__export(styledComponent_exports, {
|
|
20
|
-
toHtml: () => toHtml
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
21
4
|
});
|
|
22
|
-
|
|
23
|
-
|
|
5
|
+
Object.defineProperty(exports, "toHtml", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => toHtml
|
|
8
|
+
});
|
|
9
|
+
const _styledcomponents = require("styled-components");
|
|
24
10
|
const toHtml = (jsx, renderer, next) => {
|
|
25
|
-
const sheet = new
|
|
11
|
+
const sheet = new _styledcomponents.ServerStyleSheet();
|
|
26
12
|
const html = next(sheet.collectStyles(jsx));
|
|
27
13
|
const css = sheet.getStyleTags();
|
|
28
14
|
renderer.result.chunksMap.css += css;
|
|
29
15
|
return html;
|
|
30
16
|
};
|
|
31
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
-
0 && (module.exports = {
|
|
33
|
-
toHtml
|
|
34
|
-
});
|