@modern-js/runtime 2.0.0-canary.0 → 2.0.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 +328 -0
- package/dist/js/modern/cli/index.js +49 -19
- package/dist/js/modern/cli/types.d.js +0 -0
- package/dist/js/modern/common.js +4 -1
- package/dist/js/modern/config.js +0 -0
- package/dist/js/modern/core/app-config.js +8 -9
- package/dist/js/modern/core/compatible.js +195 -169
- package/dist/js/modern/core/index.js +14 -6
- package/dist/js/modern/core/loader/index.js +4 -1
- package/dist/js/modern/core/loader/loaderManager.js +75 -77
- package/dist/js/modern/core/loader/useLoader.js +96 -69
- package/dist/js/modern/core/plugin.js +37 -20
- package/dist/js/modern/document/Body.js +20 -14
- package/dist/js/modern/document/DocumentContext.js +6 -3
- package/dist/js/modern/document/DocumentStructrueContext.js +8 -4
- package/dist/js/modern/document/Head.js +20 -17
- package/dist/js/modern/document/Html.js +44 -58
- package/dist/js/modern/document/Links.js +10 -0
- package/dist/js/modern/document/Root.js +22 -20
- package/dist/js/modern/document/Script.js +20 -0
- package/dist/js/modern/document/Scripts.js +7 -7
- package/dist/js/modern/document/cli/index.js +181 -85
- package/dist/js/modern/document/constants.js +45 -15
- package/dist/js/modern/document/index.js +3 -1
- package/dist/js/modern/document/type.d.js +0 -0
- package/dist/js/modern/exports/head.js +6 -3
- package/dist/js/modern/exports/loadable.js +6 -3
- package/dist/js/modern/exports/server.js +4 -1
- package/dist/js/modern/exports/styled.js +6 -3
- package/dist/js/modern/index.js +22 -2
- package/dist/js/modern/modern-app.env.d.js +0 -0
- package/dist/js/modern/router/cli/index.js +76 -60
- package/dist/js/modern/router/index.js +7 -3
- package/dist/js/modern/router/runtime/DefaultNotFound.js +11 -10
- package/dist/js/modern/router/runtime/index.js +8 -4
- package/dist/js/modern/router/runtime/plugin.js +69 -46
- package/dist/js/modern/router/runtime/plugin.node.js +88 -83
- package/dist/js/modern/router/runtime/root/index.js +10 -10
- package/dist/js/modern/router/runtime/root/load.js +57 -36
- package/dist/js/modern/router/runtime/server.js +1 -1
- package/dist/js/modern/router/runtime/types.js +0 -1
- package/dist/js/modern/router/runtime/utils.js +91 -66
- package/dist/js/modern/router/runtime/withRouter.js +31 -15
- package/dist/js/modern/runtime-context.js +7 -3
- package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
- package/dist/js/modern/ssr/cli/index.js +102 -79
- package/dist/js/modern/ssr/index.js +89 -71
- package/dist/js/modern/ssr/index.node.js +59 -37
- package/dist/js/modern/ssr/prefetch.js +64 -45
- package/dist/js/modern/ssr/react/index.js +6 -2
- package/dist/js/modern/ssr/react/nossr/index.js +8 -7
- package/dist/js/modern/ssr/react/prerender/index.js +53 -28
- package/dist/js/modern/ssr/react/prerender/util.js +38 -26
- package/dist/js/modern/ssr/react/withCallback/index.js +6 -7
- package/dist/js/modern/ssr/serverRender/helmet.js +18 -12
- package/dist/js/modern/ssr/serverRender/index.js +34 -13
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -12
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -5
- package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +35 -39
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +36 -18
- package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +7 -7
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +56 -34
- package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +6 -5
- package/dist/js/modern/ssr/serverRender/renderToStream/template.js +13 -9
- package/dist/js/modern/ssr/serverRender/renderToString/entry.js +101 -84
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +32 -9
- package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +21 -18
- package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +6 -3
- package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +6 -3
- package/dist/js/modern/ssr/serverRender/renderToString/template.js +22 -22
- package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -6
- package/dist/js/modern/ssr/serverRender/types.js +3 -1
- package/dist/js/modern/ssr/serverRender/utils.js +11 -9
- package/dist/js/modern/ssr/type.d.js +0 -0
- package/dist/js/modern/ssr/utils.js +41 -21
- package/dist/js/modern/state/cli/index.js +43 -32
- package/dist/js/modern/state/index.js +7 -3
- package/dist/js/modern/state/plugins.js +13 -7
- package/dist/js/modern/state/runtime/index.js +9 -4
- package/dist/js/modern/state/runtime/plugin.js +56 -40
- package/dist/js/modern/state/types.js +0 -1
- package/dist/js/node/cli/index.js +79 -30
- package/dist/js/node/cli/types.d.js +0 -0
- package/dist/js/node/common.js +26 -7
- package/dist/js/node/config.js +15 -0
- package/dist/js/node/core/app-config.js +29 -14
- package/dist/js/node/core/compatible.js +227 -186
- package/dist/js/node/core/index.js +44 -99
- package/dist/js/node/core/loader/index.js +31 -11
- package/dist/js/node/core/loader/loaderManager.js +102 -83
- package/dist/js/node/core/loader/useLoader.js +120 -83
- package/dist/js/node/core/plugin.js +65 -35
- package/dist/js/node/document/Body.js +40 -23
- package/dist/js/node/document/DocumentContext.js +33 -9
- package/dist/js/node/document/DocumentStructrueContext.js +35 -10
- package/dist/js/node/document/Head.js +45 -27
- package/dist/js/node/document/Html.js +68 -65
- package/dist/js/node/document/Links.js +33 -0
- package/dist/js/node/document/Root.js +47 -31
- package/dist/js/node/document/Script.js +40 -0
- package/dist/js/node/document/Scripts.js +30 -14
- package/dist/js/node/document/cli/index.js +193 -95
- package/dist/js/node/document/constants.js +78 -28
- package/dist/js/node/document/index.js +26 -93
- package/dist/js/node/document/type.d.js +0 -0
- package/dist/js/node/exports/head.js +33 -22
- package/dist/js/node/exports/loadable.js +33 -22
- package/dist/js/node/exports/server.js +26 -7
- package/dist/js/node/exports/styled.js +33 -22
- package/dist/js/node/index.js +43 -60
- package/dist/js/node/modern-app.env.d.js +0 -0
- package/dist/js/node/router/cli/index.js +89 -65
- package/dist/js/node/router/index.js +33 -30
- package/dist/js/node/router/runtime/DefaultNotFound.js +32 -17
- package/dist/js/node/router/runtime/index.js +29 -38
- package/dist/js/node/router/runtime/plugin.js +91 -57
- package/dist/js/node/router/runtime/plugin.node.js +113 -93
- package/dist/js/node/router/runtime/root/index.js +37 -21
- package/dist/js/node/router/runtime/root/load.js +80 -42
- package/dist/js/node/router/runtime/server.js +17 -16
- package/dist/js/node/router/runtime/types.js +15 -5
- package/dist/js/node/router/runtime/utils.js +112 -75
- package/dist/js/node/router/runtime/withRouter.js +53 -22
- package/dist/js/node/runtime-context.js +30 -10
- package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
- package/dist/js/node/ssr/cli/index.js +119 -85
- package/dist/js/node/ssr/index.js +125 -104
- package/dist/js/node/ssr/index.node.js +86 -59
- package/dist/js/node/ssr/prefetch.js +84 -51
- package/dist/js/node/ssr/react/index.js +27 -16
- package/dist/js/node/ssr/react/nossr/index.js +37 -16
- package/dist/js/node/ssr/react/prerender/index.js +82 -45
- package/dist/js/node/ssr/react/prerender/type.js +15 -0
- package/dist/js/node/ssr/react/prerender/util.js +63 -36
- package/dist/js/node/ssr/react/withCallback/index.js +29 -15
- package/dist/js/node/ssr/serverRender/helmet.js +37 -17
- package/dist/js/node/ssr/serverRender/index.js +55 -19
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +40 -20
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +32 -10
- package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +63 -48
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +69 -30
- package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +29 -12
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
- package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +29 -11
- package/dist/js/node/ssr/serverRender/renderToStream/template.js +36 -16
- package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
- package/dist/js/node/ssr/serverRender/renderToString/entry.js +135 -103
- package/dist/js/node/ssr/serverRender/renderToString/index.js +64 -20
- package/dist/js/node/ssr/serverRender/renderToString/loadable.js +45 -26
- package/dist/js/node/ssr/serverRender/renderToString/reduce.js +27 -7
- package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +27 -8
- package/dist/js/node/ssr/serverRender/renderToString/template.js +44 -28
- package/dist/js/node/ssr/serverRender/renderToString/type.js +31 -12
- package/dist/js/node/ssr/serverRender/types.js +25 -10
- package/dist/js/node/ssr/serverRender/utils.js +31 -13
- package/dist/js/node/ssr/type.d.js +0 -0
- package/dist/js/node/ssr/utils.js +63 -29
- package/dist/js/node/state/cli/index.js +58 -37
- package/dist/js/node/state/index.js +33 -30
- package/dist/js/node/state/plugins.js +43 -22
- package/dist/js/node/state/runtime/index.js +36 -50
- package/dist/js/node/state/runtime/plugin.js +89 -68
- package/dist/js/node/state/types.js +15 -5
- package/dist/js/treeshaking/cli/index.js +180 -52
- package/dist/js/treeshaking/cli/types.d.js +1 -0
- package/dist/js/treeshaking/common.js +4 -3
- package/dist/js/treeshaking/config.js +1 -0
- package/dist/js/treeshaking/core/app-config.js +8 -13
- package/dist/js/treeshaking/core/compatible.js +473 -276
- package/dist/js/treeshaking/core/index.js +5 -6
- package/dist/js/treeshaking/core/loader/index.js +2 -1
- package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
- package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
- package/dist/js/treeshaking/core/plugin.js +164 -48
- package/dist/js/treeshaking/document/Body.js +15 -11
- package/dist/js/treeshaking/document/DocumentContext.js +7 -6
- package/dist/js/treeshaking/document/DocumentStructrueContext.js +9 -7
- package/dist/js/treeshaking/document/Head.js +20 -17
- package/dist/js/treeshaking/document/Html.js +88 -93
- package/dist/js/treeshaking/document/Links.js +8 -0
- package/dist/js/treeshaking/document/Root.js +23 -21
- package/dist/js/treeshaking/document/Script.js +15 -0
- package/dist/js/treeshaking/document/Scripts.js +7 -9
- package/dist/js/treeshaking/document/cli/index.js +386 -168
- package/dist/js/treeshaking/document/constants.js +35 -16
- package/dist/js/treeshaking/document/index.js +3 -1
- package/dist/js/treeshaking/document/type.d.js +1 -0
- package/dist/js/treeshaking/exports/head.js +4 -3
- package/dist/js/treeshaking/exports/loadable.js +4 -3
- package/dist/js/treeshaking/exports/server.js +4 -3
- package/dist/js/treeshaking/exports/styled.js +4 -3
- package/dist/js/treeshaking/index.js +3 -2
- package/dist/js/treeshaking/modern-app.env.d.js +1 -0
- package/dist/js/treeshaking/router/cli/index.js +145 -99
- package/dist/js/treeshaking/router/index.js +4 -3
- package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
- package/dist/js/treeshaking/router/runtime/index.js +5 -4
- package/dist/js/treeshaking/router/runtime/plugin.js +127 -78
- package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
- package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
- package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
- package/dist/js/treeshaking/router/runtime/server.js +1 -1
- package/dist/js/treeshaking/router/runtime/types.js +1 -1
- package/dist/js/treeshaking/router/runtime/utils.js +230 -142
- package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
- package/dist/js/treeshaking/runtime-context.js +4 -3
- package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
- package/dist/js/treeshaking/ssr/cli/index.js +210 -138
- package/dist/js/treeshaking/ssr/index.js +305 -144
- package/dist/js/treeshaking/ssr/index.node.js +234 -66
- package/dist/js/treeshaking/ssr/prefetch.js +196 -79
- package/dist/js/treeshaking/ssr/react/index.js +3 -2
- package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
- package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
- package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
- package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
- package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
- package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
- package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +108 -60
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
- package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
- package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
- package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
- package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
- package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
- package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
- package/dist/js/treeshaking/ssr/type.d.js +1 -0
- package/dist/js/treeshaking/ssr/utils.js +128 -64
- package/dist/js/treeshaking/state/cli/index.js +70 -68
- package/dist/js/treeshaking/state/index.js +4 -3
- package/dist/js/treeshaking/state/plugins.js +12 -11
- package/dist/js/treeshaking/state/runtime/index.js +5 -4
- package/dist/js/treeshaking/state/runtime/plugin.js +189 -77
- package/dist/js/treeshaking/state/types.js +1 -1
- package/dist/types/cli/index.d.ts +2 -0
- package/dist/types/config.d.ts +8 -0
- package/dist/types/core/compatible.d.ts +2 -2
- package/dist/types/core/loader/loaderManager.d.ts +4 -3
- package/dist/types/core/loader/useLoader.d.ts +6 -1
- package/dist/types/core/plugin.d.ts +10 -5
- package/dist/types/document/DocumentContext.d.ts +1 -1
- package/dist/types/document/DocumentStructrueContext.d.ts +2 -1
- package/dist/types/document/Links.d.ts +2 -0
- package/dist/types/document/Script.d.ts +4 -0
- package/dist/types/document/cli/index.d.ts +2 -0
- package/dist/types/document/constants.d.ts +3 -0
- package/dist/types/document/index.d.ts +2 -0
- package/dist/types/exports/server.d.ts +3 -3
- package/dist/types/index.d.ts +1 -0
- package/dist/types/router/cli/index.d.ts +2 -0
- package/dist/types/router/runtime/plugin.d.ts +2 -2
- package/dist/types/router/runtime/types.d.ts +6 -4
- package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
- package/dist/types/ssr/cli/index.d.ts +2 -0
- package/dist/types/ssr/react/prerender/type.d.ts +6 -6
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +1 -1
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +1 -1
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +1 -1
- package/dist/types/ssr/serverRender/renderToStream/type.d.ts +1 -1
- package/dist/types/ssr/serverRender/renderToString/entry.d.ts +1 -1
- package/dist/types/ssr/serverRender/renderToString/template.d.ts +1 -1
- package/dist/types/ssr/serverRender/renderToString/type.d.ts +3 -3
- package/dist/types/ssr/serverRender/types.d.ts +3 -3
- package/dist/types/state/cli/index.d.ts +2 -0
- package/dist/types/state/runtime/plugin.d.ts +3 -3
- package/dist/types/state/types.d.ts +2 -1
- package/package.json +19 -16
- package/types/index.d.ts +8 -2
- package/types/router.d.ts +8 -2
|
@@ -1,50 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
import { jsx } from "react/jsx-runtime";
|
|
22
|
+
import { renderToStaticMarkup } from "react-dom/server";
|
|
23
|
+
import { run } from "@modern-js/utils/ssr";
|
|
24
|
+
import { ChunkExtractor } from "@loadable/server";
|
|
25
|
+
const prefetch = (App, context) => __async(void 0, null, function* () {
|
|
26
|
+
return run(context.ssrContext.request.headers, () => __async(void 0, null, function* () {
|
|
27
|
+
var _a;
|
|
28
|
+
const { ssrContext } = context;
|
|
29
|
+
const { loadableStats } = ssrContext;
|
|
30
|
+
if (loadableStats) {
|
|
31
|
+
const extractor = new ChunkExtractor({
|
|
32
|
+
stats: loadableStats,
|
|
33
|
+
entrypoints: [ssrContext.entryName].filter(Boolean)
|
|
34
|
+
});
|
|
35
|
+
renderToStaticMarkup(extractor.collectChunks(/* @__PURE__ */ jsx(App, {
|
|
36
|
+
context
|
|
37
|
+
})));
|
|
38
|
+
} else {
|
|
39
|
+
renderToStaticMarkup(/* @__PURE__ */ 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 = yield 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
|
+
}
|
|
18
57
|
});
|
|
19
|
-
renderToStaticMarkup(extractor.collectChunks( /*#__PURE__*/_jsx(App, {
|
|
20
|
-
context: context
|
|
21
|
-
})));
|
|
22
|
-
} else {
|
|
23
|
-
renderToStaticMarkup( /*#__PURE__*/_jsx(App, {
|
|
24
|
-
context: context
|
|
25
|
-
}));
|
|
26
|
-
}
|
|
27
|
-
if (!context.loaderManager.hasPendingLoaders()) {
|
|
28
58
|
return {
|
|
59
|
+
loadersData,
|
|
29
60
|
initialData: context.initialData,
|
|
30
|
-
i18nData: context.__i18nData__
|
|
61
|
+
i18nData: context.__i18nData__,
|
|
62
|
+
storeState: (_a = context == null ? void 0 : context.store) == null ? void 0 : _a.getState()
|
|
31
63
|
};
|
|
32
|
-
}
|
|
33
|
-
const loadersData = await context.loaderManager.awaitPendingLoaders();
|
|
34
|
-
Object.keys(loadersData).forEach(id => {
|
|
35
|
-
const data = loadersData[id];
|
|
36
|
-
if (data._error) {
|
|
37
|
-
ssrContext.logger.error('App Prefetch Loader', data._error);
|
|
38
|
-
ssrContext.metrics.emitCounter('app.prefetch.loader.error', 1);
|
|
39
|
-
delete data._error;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
return {
|
|
43
|
-
loadersData,
|
|
44
|
-
initialData: context.initialData,
|
|
45
|
-
i18nData: context.__i18nData__,
|
|
46
|
-
// todo: move to plugin state
|
|
47
|
-
storeState: context === null || context === void 0 ? void 0 : (_context$store = context.store) === null || _context$store === void 0 ? void 0 : _context$store.getState()
|
|
48
|
-
};
|
|
64
|
+
}));
|
|
49
65
|
});
|
|
50
|
-
|
|
66
|
+
var prefetch_default = prefetch;
|
|
67
|
+
export {
|
|
68
|
+
prefetch_default as default
|
|
69
|
+
};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import React, { useEffect, useState } from
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
2
|
let csr = false;
|
|
3
|
-
|
|
3
|
+
const NoSSR = (props) => {
|
|
4
4
|
const [isMounted, setMounted] = useState(csr);
|
|
5
5
|
useEffect(() => {
|
|
6
6
|
csr = true;
|
|
7
7
|
setMounted(true);
|
|
8
8
|
});
|
|
9
|
-
const {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
const { children } = props;
|
|
10
|
+
return React.createElement(React.Fragment, null, isMounted ? children : null);
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
NoSSR
|
|
14
|
+
};
|
|
@@ -1,22 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
import withSideEffect from "react-side-effect";
|
|
21
|
+
import React, { createElement } from "react";
|
|
22
|
+
import {
|
|
23
|
+
getOutermostProperty,
|
|
24
|
+
aggKeysFromPropsList,
|
|
25
|
+
exist,
|
|
26
|
+
aggMatchesFromPropsList
|
|
27
|
+
} from "./util";
|
|
7
28
|
const PROP_NAMES = {
|
|
8
|
-
INTERVAL:
|
|
9
|
-
STALE_LIMIT:
|
|
10
|
-
LEVEL:
|
|
11
|
-
INCLUDES:
|
|
12
|
-
EXCLUDES:
|
|
13
|
-
FALLBACK:
|
|
14
|
-
MATCHES:
|
|
29
|
+
INTERVAL: "interval",
|
|
30
|
+
STALE_LIMIT: "staleLimit",
|
|
31
|
+
LEVEL: "level",
|
|
32
|
+
INCLUDES: "includes",
|
|
33
|
+
EXCLUDES: "excludes",
|
|
34
|
+
FALLBACK: "fallback",
|
|
35
|
+
MATCHES: "matches"
|
|
15
36
|
};
|
|
16
37
|
const handleClientStateChange = () => {
|
|
17
|
-
// not used
|
|
18
38
|
};
|
|
19
|
-
const mapStateOnServer = reduceProps => {
|
|
39
|
+
const mapStateOnServer = (reduceProps) => {
|
|
20
40
|
const defaultProps = {
|
|
21
41
|
interval: 10,
|
|
22
42
|
staleLimit: false,
|
|
@@ -31,14 +51,12 @@ const mapStateOnServer = reduceProps => {
|
|
|
31
51
|
const reduceProp = reduceProps[propKey];
|
|
32
52
|
let nextProps = props;
|
|
33
53
|
if (exist(reduceProp)) {
|
|
34
|
-
nextProps =
|
|
35
|
-
[propKey]: reduceProp
|
|
36
|
-
});
|
|
54
|
+
nextProps = __spreadProps(__spreadValues({}, props), { [propKey]: reduceProp });
|
|
37
55
|
}
|
|
38
56
|
return nextProps;
|
|
39
57
|
}, defaultProps);
|
|
40
58
|
};
|
|
41
|
-
const reducePropsToState = propsList => {
|
|
59
|
+
const reducePropsToState = (propsList) => {
|
|
42
60
|
const reduceProps = {
|
|
43
61
|
interval: getOutermostProperty(propsList, PROP_NAMES.INTERVAL),
|
|
44
62
|
staleLimit: getOutermostProperty(propsList, PROP_NAMES.STALE_LIMIT),
|
|
@@ -62,22 +80,29 @@ function factory(Component) {
|
|
|
62
80
|
return true;
|
|
63
81
|
}
|
|
64
82
|
render() {
|
|
65
|
-
const newProps =
|
|
83
|
+
const newProps = __spreadValues({}, this.props);
|
|
66
84
|
const validate = this.verify();
|
|
67
85
|
if (!validate) {
|
|
68
|
-
throw new Error(
|
|
86
|
+
throw new Error("invalid props, check usage");
|
|
69
87
|
}
|
|
70
|
-
return
|
|
88
|
+
return createElement(Component, __spreadValues({}, newProps));
|
|
71
89
|
}
|
|
72
90
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
91
|
+
Spr.peek = Component.peek;
|
|
92
|
+
Spr.rewind = Component.rewind;
|
|
93
|
+
Spr.config = () => {
|
|
76
94
|
const mappedState = Component.rewind();
|
|
77
95
|
return mappedState;
|
|
78
|
-
}
|
|
96
|
+
};
|
|
79
97
|
return Spr;
|
|
80
98
|
}
|
|
81
99
|
const NullComponent = () => null;
|
|
82
|
-
const SprSideEffects = withSideEffect(
|
|
83
|
-
|
|
100
|
+
const SprSideEffects = withSideEffect(
|
|
101
|
+
reducePropsToState,
|
|
102
|
+
handleClientStateChange,
|
|
103
|
+
mapStateOnServer
|
|
104
|
+
)(NullComponent);
|
|
105
|
+
const PreRender = factory(SprSideEffects);
|
|
106
|
+
export {
|
|
107
|
+
PreRender
|
|
108
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const REQUEST_META = [
|
|
2
|
-
|
|
1
|
+
const REQUEST_META = ["header", "query"];
|
|
2
|
+
const getInnermostProperty = function getInnermostProperty2(propsList, propName) {
|
|
3
3
|
for (let i = propsList.length - 1; i >= 0; i--) {
|
|
4
4
|
const props = propsList[i];
|
|
5
5
|
if (props.hasOwnProperty(propName)) {
|
|
@@ -8,7 +8,7 @@ export const getInnermostProperty = function getInnermostProperty(propsList, pro
|
|
|
8
8
|
}
|
|
9
9
|
return null;
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
const getOutermostProperty = function getOutermostProperty2(propsList, propName) {
|
|
12
12
|
for (const props of propsList) {
|
|
13
13
|
if (props.hasOwnProperty(propName)) {
|
|
14
14
|
return props[propName];
|
|
@@ -16,41 +16,46 @@ export const getOutermostProperty = function getOutermostProperty(propsList, pro
|
|
|
16
16
|
}
|
|
17
17
|
return null;
|
|
18
18
|
};
|
|
19
|
-
|
|
20
|
-
const initResult = REQUEST_META.reduce(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
const aggKeysFromPropsList = function aggKeysFromPropsList2(propsList, propName) {
|
|
20
|
+
const initResult = REQUEST_META.reduce(
|
|
21
|
+
(result, next) => {
|
|
22
|
+
const key = next;
|
|
23
|
+
result[key] = [];
|
|
24
|
+
return result;
|
|
25
|
+
},
|
|
26
|
+
{}
|
|
27
|
+
);
|
|
28
|
+
const res = propsList.filter((props) => usefulObject(props[propName])).reduce((result, next) => {
|
|
29
|
+
REQUEST_META.forEach((key) => {
|
|
27
30
|
const prop = next[propName];
|
|
28
|
-
if (prop
|
|
31
|
+
if ((prop == null ? void 0 : prop.hasOwnProperty(key)) && usefulArray(prop[key])) {
|
|
29
32
|
result[key] = unique(result[key].concat(prop[key]));
|
|
30
33
|
}
|
|
31
34
|
});
|
|
32
35
|
return result;
|
|
33
36
|
}, initResult);
|
|
34
37
|
return REQUEST_META.reduce((result, next) => {
|
|
35
|
-
var
|
|
38
|
+
var _a;
|
|
36
39
|
const key = next;
|
|
37
|
-
if (result[key] && ((
|
|
40
|
+
if (result[key] && ((_a = result[key]) == null ? void 0 : _a.length) === 0) {
|
|
38
41
|
delete result[key];
|
|
39
42
|
}
|
|
40
43
|
return result;
|
|
41
44
|
}, res);
|
|
42
45
|
};
|
|
43
|
-
|
|
44
|
-
const initResult = REQUEST_META.reduce(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
const aggMatchesFromPropsList = function aggMatchesFromPropsList2(propsList, propName) {
|
|
47
|
+
const initResult = REQUEST_META.reduce(
|
|
48
|
+
(result, next) => {
|
|
49
|
+
const key = next;
|
|
50
|
+
result[key] = {};
|
|
51
|
+
return result;
|
|
52
|
+
},
|
|
53
|
+
{}
|
|
54
|
+
);
|
|
55
|
+
const res = propsList.filter((props) => usefulObject(props[propName])).reduce((result, next) => {
|
|
56
|
+
REQUEST_META.forEach((key) => {
|
|
51
57
|
const prop = next[propName];
|
|
52
|
-
|
|
53
|
-
if (prop !== null && prop !== void 0 && prop.hasOwnProperty(key) && usefulObject(prop[key])) {
|
|
58
|
+
if ((prop == null ? void 0 : prop.hasOwnProperty(key)) && usefulObject(prop[key])) {
|
|
54
59
|
result[key] = Object.assign(result[key], prop[key]);
|
|
55
60
|
}
|
|
56
61
|
});
|
|
@@ -79,6 +84,13 @@ function usefulArray(target) {
|
|
|
79
84
|
}
|
|
80
85
|
return Array.isArray(target) && target.length > 0;
|
|
81
86
|
}
|
|
82
|
-
|
|
87
|
+
function exist(target) {
|
|
83
88
|
return target != null;
|
|
84
|
-
}
|
|
89
|
+
}
|
|
90
|
+
export {
|
|
91
|
+
aggKeysFromPropsList,
|
|
92
|
+
aggMatchesFromPropsList,
|
|
93
|
+
exist,
|
|
94
|
+
getInnermostProperty,
|
|
95
|
+
getOutermostProperty
|
|
96
|
+
};
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export const WithCallback = ({
|
|
4
|
-
callback,
|
|
5
|
-
children
|
|
6
|
-
}) => {
|
|
1
|
+
import { useRef, useLayoutEffect } from "react";
|
|
2
|
+
const WithCallback = ({ callback, children }) => {
|
|
7
3
|
const once = useRef(false);
|
|
8
4
|
useLayoutEffect(() => {
|
|
9
5
|
if (once.current) {
|
|
@@ -13,4 +9,7 @@ export const WithCallback = ({
|
|
|
13
9
|
callback();
|
|
14
10
|
}, [callback]);
|
|
15
11
|
return children;
|
|
16
|
-
};
|
|
12
|
+
};
|
|
13
|
+
export {
|
|
14
|
+
WithCallback
|
|
15
|
+
};
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import { EOL } from 'os';
|
|
1
|
+
import { EOL } from "os";
|
|
3
2
|
const RE_HTML_ATTR = /<html[^>]*>/;
|
|
4
3
|
const RE_BODY_ATTR = /<body[^>]*>/;
|
|
5
4
|
const RE_LAST_IN_HEAD = /<\/head>/;
|
|
6
5
|
const RE_TITLE = /<title[^>]*>([\s\S\n\r]*?)<\/title>/;
|
|
7
|
-
const TEST_TITLE_CONTENT =
|
|
8
|
-
|
|
9
|
-
// 通过 react-helmet 修改模板
|
|
10
|
-
export default function helmet(content, helmetData) {
|
|
6
|
+
const TEST_TITLE_CONTENT = new RegExp("(?<=<title[^>]*>)([\\s\\S\\n\\r]*?)([.|\\S])([\\s\\S\\n\\r]*?)(?=<\\/title>)");
|
|
7
|
+
function helmet(content, helmetData) {
|
|
11
8
|
let result = content;
|
|
12
9
|
const bodyAttributes = helmetData.bodyAttributes.toString();
|
|
13
10
|
if (bodyAttributes) {
|
|
@@ -24,15 +21,24 @@ export default function helmet(content, helmetData) {
|
|
|
24
21
|
const script = helmetData.script.toString();
|
|
25
22
|
const style = helmetData.style.toString();
|
|
26
23
|
const title = helmetData.title.toString();
|
|
27
|
-
|
|
28
|
-
// 如果模板中存在 title,且 helmetData title 有内容则做替换
|
|
29
24
|
const existTitleTag = RE_TITLE.test(content);
|
|
30
25
|
const shouldReplaceTitle = existTitleTag && TEST_TITLE_CONTENT.test(title.trim());
|
|
31
26
|
if (shouldReplaceTitle) {
|
|
32
27
|
result = result.replace(RE_TITLE, title);
|
|
33
28
|
}
|
|
34
|
-
const helmetStr = [
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
const helmetStr = [
|
|
30
|
+
base,
|
|
31
|
+
link,
|
|
32
|
+
meta,
|
|
33
|
+
noscript,
|
|
34
|
+
script,
|
|
35
|
+
style,
|
|
36
|
+
!existTitleTag ? title : ""
|
|
37
|
+
].reduce((pre, cur) => {
|
|
38
|
+
return pre + (cur.length > 0 ? ` ${cur}${EOL}` : "");
|
|
39
|
+
}, "");
|
|
37
40
|
return result.replace(RE_LAST_IN_HEAD, `${helmetStr}</head>`);
|
|
38
|
-
}
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
helmet as default
|
|
44
|
+
};
|
|
@@ -1,14 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
5
21
|
import { isReact18 } from "../utils";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
22
|
+
function serverRender(options) {
|
|
23
|
+
return __async(this, null, function* () {
|
|
24
|
+
if (isReact18() && options.config.mode === "stream") {
|
|
25
|
+
const pipe = yield require("./renderToStream").render(options);
|
|
26
|
+
return pipe;
|
|
27
|
+
} else {
|
|
28
|
+
const html = yield require("./renderToString").render(options);
|
|
29
|
+
return html;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
serverRender as default
|
|
35
|
+
};
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
import serialize from
|
|
1
|
+
import serialize from "serialize-javascript";
|
|
2
2
|
import { buildTemplate } from "./buildTemplate.share";
|
|
3
|
-
|
|
3
|
+
function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
4
4
|
const callbacks = [injectSSRDataScript];
|
|
5
5
|
return buildTemplate(afterAppTemplate, callbacks);
|
|
6
6
|
function injectSSRDataScript(template) {
|
|
7
7
|
const ssrDataScript = buildSSRDataScript();
|
|
8
|
-
return template.replace(
|
|
8
|
+
return template.replace("<!--<?- SSRDataScript ?>-->", ssrDataScript);
|
|
9
9
|
function buildSSRDataScript() {
|
|
10
|
-
const {
|
|
11
|
-
|
|
12
|
-
renderLevel
|
|
13
|
-
} = options;
|
|
14
|
-
const {
|
|
15
|
-
request
|
|
16
|
-
} = ssrContext;
|
|
10
|
+
const { ssrContext, renderLevel } = options;
|
|
11
|
+
const { request } = ssrContext;
|
|
17
12
|
const SSRData = {
|
|
18
13
|
context: {
|
|
19
14
|
request: {
|
|
@@ -31,8 +26,11 @@ export function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
31
26
|
return `
|
|
32
27
|
<script>window._SSR_DATA = ${serialize(SSRData, {
|
|
33
28
|
isJSON: true
|
|
34
|
-
})}
|
|
29
|
+
})}<\/script>
|
|
35
30
|
`;
|
|
36
31
|
}
|
|
37
32
|
}
|
|
38
|
-
}
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
buildShellAfterTemplate
|
|
36
|
+
};
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
const HEAD_REG_EXP = /<head(.|\n)*>(.|\n)*<\/head>/;
|
|
2
|
+
function buildTemplate(template, callbacks) {
|
|
3
|
+
return callbacks.reduce(
|
|
4
|
+
(template2, buildTemplateCb) => buildTemplateCb(template2),
|
|
5
|
+
template
|
|
6
|
+
);
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
HEAD_REG_EXP,
|
|
10
|
+
buildTemplate
|
|
11
|
+
};
|
|
@@ -1,65 +1,61 @@
|
|
|
1
|
-
import ReactHelmet from
|
|
2
|
-
import { matchRoutes } from
|
|
1
|
+
import ReactHelmet from "react-helmet";
|
|
2
|
+
import { matchRoutes } from "react-router-dom";
|
|
3
3
|
import helmetReplace from "../helmet";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import {
|
|
5
|
+
HEAD_REG_EXP,
|
|
6
|
+
buildTemplate
|
|
7
|
+
} from "./buildTemplate.share";
|
|
8
|
+
const CSS_CHUNKS_PLACEHOLDER = "<!--<?- chunksMap.css ?>-->";
|
|
8
9
|
function getHeadTemplate(beforeEntryTemplate, context) {
|
|
9
|
-
const callbacks = [
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
const callbacks = [
|
|
11
|
+
(headTemplate2) => {
|
|
12
|
+
const helmetData = ReactHelmet.renderStatic();
|
|
13
|
+
return helmetData ? helmetReplace(headTemplate2, helmetData) : headTemplate2;
|
|
14
|
+
},
|
|
15
|
+
injectCss
|
|
16
|
+
];
|
|
17
|
+
const [headTemplate = ""] = beforeEntryTemplate.match(HEAD_REG_EXP) || [];
|
|
16
18
|
if (!headTemplate.length) {
|
|
17
|
-
return
|
|
19
|
+
return "";
|
|
18
20
|
}
|
|
19
21
|
return buildTemplate(headTemplate, callbacks);
|
|
20
|
-
function injectCss(
|
|
21
|
-
return
|
|
22
|
+
function injectCss(headTemplate2) {
|
|
23
|
+
return headTemplate2.replace(CSS_CHUNKS_PLACEHOLDER, getCssChunks());
|
|
22
24
|
function getCssChunks() {
|
|
23
|
-
const {
|
|
24
|
-
routeManifest,
|
|
25
|
-
routerContext,
|
|
26
|
-
routes
|
|
27
|
-
} = context;
|
|
25
|
+
const { routeManifest, routerContext, routes } = context;
|
|
28
26
|
if (!routeManifest || !routerContext || !routes) {
|
|
29
|
-
return
|
|
27
|
+
return "";
|
|
30
28
|
}
|
|
31
|
-
const {
|
|
32
|
-
routeAssets
|
|
33
|
-
} = routeManifest;
|
|
29
|
+
const { routeAssets } = routeManifest;
|
|
34
30
|
const cssChunks = [];
|
|
35
31
|
const matches = matchRoutes(routes, routerContext.location);
|
|
36
|
-
matches
|
|
37
|
-
// root layout css chunks should't be loaded
|
|
32
|
+
matches == null ? void 0 : matches.forEach((match, index) => {
|
|
38
33
|
if (!index) {
|
|
39
34
|
return;
|
|
40
35
|
}
|
|
41
36
|
const routeId = match.route.id;
|
|
42
37
|
if (routeId) {
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
45
|
-
const {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
const routeManifest2 = routeAssets[routeId];
|
|
39
|
+
if (routeManifest2) {
|
|
40
|
+
const { assets = [] } = routeManifest2;
|
|
41
|
+
const _cssChunks = assets.filter(
|
|
42
|
+
(asset) => asset == null ? void 0 : asset.endsWith(".css")
|
|
43
|
+
);
|
|
49
44
|
cssChunks.push(..._cssChunks);
|
|
50
45
|
}
|
|
51
46
|
}
|
|
52
47
|
});
|
|
53
|
-
const styleLinks = cssChunks.map(chunk => {
|
|
48
|
+
const styleLinks = cssChunks.map((chunk) => {
|
|
54
49
|
return `<link href="${chunk}" rel="stylesheet" />`;
|
|
55
50
|
});
|
|
56
|
-
return `${styleLinks.join(
|
|
51
|
+
return `${styleLinks.join("")}`;
|
|
57
52
|
}
|
|
58
53
|
}
|
|
59
54
|
}
|
|
60
|
-
|
|
61
|
-
// build script
|
|
62
|
-
export function buildShellBeforeTemplate(beforeAppTemplate, context) {
|
|
55
|
+
function buildShellBeforeTemplate(beforeAppTemplate, context) {
|
|
63
56
|
const headTemplate = getHeadTemplate(beforeAppTemplate, context);
|
|
64
57
|
return beforeAppTemplate.replace(HEAD_REG_EXP, headTemplate);
|
|
65
|
-
}
|
|
58
|
+
}
|
|
59
|
+
export {
|
|
60
|
+
buildShellBeforeTemplate
|
|
61
|
+
};
|