@modern-js/runtime 2.0.0-beta.0 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -0
- package/dist/js/modern/cli/index.js +3 -5
- package/dist/js/modern/core/app-config.js +2 -1
- package/dist/js/modern/core/compatible.js +63 -46
- package/dist/js/modern/core/index.js +3 -2
- package/dist/js/modern/core/loader/loaderManager.js +12 -34
- package/dist/js/modern/core/loader/useLoader.js +8 -26
- package/dist/js/modern/core/plugin.js +6 -28
- package/dist/js/modern/document/Body.js +17 -0
- package/dist/js/modern/document/DocumentContext.js +6 -0
- package/dist/js/modern/document/DocumentStructrueContext.js +7 -0
- package/dist/js/modern/document/Head.js +24 -0
- package/dist/js/modern/document/Html.js +92 -0
- package/dist/js/modern/document/Root.js +31 -0
- package/dist/js/modern/document/Scripts.js +10 -0
- package/dist/js/modern/document/cli/index.js +130 -0
- package/dist/js/modern/document/constants.js +19 -0
- package/dist/js/modern/document/index.js +8 -0
- package/dist/js/modern/index.js +1 -1
- package/dist/js/modern/router/cli/index.js +0 -16
- package/dist/js/modern/router/runtime/plugin.js +0 -9
- package/dist/js/modern/router/runtime/plugin.node.js +18 -24
- package/dist/js/modern/router/runtime/root/index.js +19 -0
- package/dist/js/modern/router/runtime/root/load.js +61 -0
- package/dist/js/modern/router/runtime/utils.js +16 -35
- package/dist/js/modern/router/runtime/withRouter.js +1 -3
- package/dist/js/modern/ssr/cli/index.js +2 -23
- package/dist/js/modern/ssr/index.js +23 -34
- package/dist/js/modern/ssr/index.node.js +0 -13
- package/dist/js/modern/ssr/prefetch.js +0 -7
- package/dist/js/modern/ssr/react/prerender/index.js +2 -23
- package/dist/js/modern/ssr/react/prerender/util.js +2 -17
- package/dist/js/modern/ssr/react/withCallback/index.js +0 -1
- package/dist/js/modern/ssr/serverRender/helmet.js +12 -20
- package/dist/js/modern/ssr/serverRender/index.js +1 -2
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -5
- package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +45 -11
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +6 -39
- package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +0 -2
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +26 -15
- package/dist/js/modern/ssr/serverRender/renderToStream/template.js +14 -18
- package/dist/js/modern/ssr/serverRender/renderToString/entry.js +2 -34
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +0 -2
- package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +0 -10
- package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +0 -2
- package/dist/js/modern/ssr/serverRender/renderToString/template.js +0 -15
- package/dist/js/modern/ssr/serverRender/renderToString/type.js +0 -1
- package/dist/js/modern/ssr/serverRender/utils.js +2 -6
- package/dist/js/modern/ssr/utils.js +0 -11
- package/dist/js/modern/state/cli/index.js +0 -10
- package/dist/js/modern/state/runtime/plugin.js +1 -14
- package/dist/js/node/cli/index.js +3 -13
- package/dist/js/node/common.js +0 -2
- package/dist/js/node/core/app-config.js +2 -5
- package/dist/js/node/core/compatible.js +63 -64
- package/dist/js/node/core/index.js +0 -16
- package/dist/js/node/core/loader/index.js +0 -2
- package/dist/js/node/core/loader/loaderManager.js +12 -37
- package/dist/js/node/core/loader/useLoader.js +8 -31
- package/dist/js/node/core/plugin.js +5 -34
- package/dist/js/node/document/Body.js +26 -0
- package/dist/js/node/document/DocumentContext.js +14 -0
- package/dist/js/node/document/DocumentStructrueContext.js +15 -0
- package/dist/js/node/document/Head.js +33 -0
- package/dist/js/node/document/Html.js +98 -0
- package/dist/js/node/document/Root.js +41 -0
- package/dist/js/node/document/Scripts.js +17 -0
- package/dist/js/node/document/cli/index.js +140 -0
- package/dist/js/node/document/constants.js +36 -0
- package/dist/js/node/document/index.js +93 -0
- package/dist/js/node/exports/head.js +0 -5
- package/dist/js/node/exports/loadable.js +0 -5
- package/dist/js/node/exports/server.js +0 -2
- package/dist/js/node/exports/styled.js +0 -5
- package/dist/js/node/index.js +0 -8
- package/dist/js/node/router/cli/index.js +0 -20
- package/dist/js/node/router/index.js +0 -4
- package/dist/js/node/router/runtime/DefaultNotFound.js +1 -5
- package/dist/js/node/router/runtime/index.js +0 -5
- package/dist/js/node/router/runtime/plugin.js +0 -17
- package/dist/js/node/router/runtime/plugin.node.js +16 -38
- package/dist/js/node/router/runtime/root/index.js +26 -0
- package/dist/js/node/router/runtime/root/load.js +69 -0
- package/dist/js/node/router/runtime/utils.js +16 -44
- package/dist/js/node/router/runtime/withRouter.js +0 -9
- package/dist/js/node/runtime-context.js +0 -2
- package/dist/js/node/ssr/cli/index.js +2 -26
- package/dist/js/node/ssr/index.js +23 -45
- package/dist/js/node/ssr/index.node.js +0 -23
- package/dist/js/node/ssr/prefetch.js +0 -11
- package/dist/js/node/ssr/react/index.js +0 -2
- package/dist/js/node/ssr/react/nossr/index.js +0 -6
- package/dist/js/node/ssr/react/prerender/index.js +2 -30
- package/dist/js/node/ssr/react/prerender/util.js +2 -25
- package/dist/js/node/ssr/react/withCallback/index.js +1 -4
- package/dist/js/node/ssr/serverRender/helmet.js +13 -20
- package/dist/js/node/ssr/serverRender/index.js +1 -4
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -9
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -1
- package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +43 -15
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +6 -48
- package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +0 -4
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +26 -17
- package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +0 -2
- package/dist/js/node/ssr/serverRender/renderToStream/template.js +16 -23
- package/dist/js/node/ssr/serverRender/renderToString/entry.js +2 -51
- package/dist/js/node/ssr/serverRender/renderToString/index.js +0 -10
- package/dist/js/node/ssr/serverRender/renderToString/loadable.js +0 -14
- package/dist/js/node/ssr/serverRender/renderToString/reduce.js +0 -3
- package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +0 -3
- package/dist/js/node/ssr/serverRender/renderToString/template.js +0 -18
- package/dist/js/node/ssr/serverRender/renderToString/type.js +0 -1
- package/dist/js/node/ssr/serverRender/types.js +0 -1
- package/dist/js/node/ssr/serverRender/utils.js +2 -8
- package/dist/js/node/ssr/utils.js +0 -20
- package/dist/js/node/state/cli/index.js +0 -15
- package/dist/js/node/state/index.js +0 -4
- package/dist/js/node/state/plugins.js +0 -11
- package/dist/js/node/state/runtime/index.js +0 -7
- package/dist/js/node/state/runtime/plugin.js +1 -25
- package/dist/js/treeshaking/cli/index.js +3 -3
- package/dist/js/treeshaking/core/app-config.js +2 -1
- package/dist/js/treeshaking/core/compatible.js +66 -63
- package/dist/js/treeshaking/core/index.js +3 -2
- package/dist/js/treeshaking/core/loader/loaderManager.js +19 -51
- package/dist/js/treeshaking/core/loader/useLoader.js +11 -28
- package/dist/js/treeshaking/core/plugin.js +6 -51
- package/dist/js/treeshaking/document/Body.js +14 -0
- package/dist/js/treeshaking/document/DocumentContext.js +6 -0
- package/dist/js/treeshaking/document/DocumentStructrueContext.js +7 -0
- package/dist/js/treeshaking/document/Head.js +21 -0
- package/dist/js/treeshaking/document/Html.js +104 -0
- package/dist/js/treeshaking/document/Root.js +24 -0
- package/dist/js/treeshaking/document/Scripts.js +10 -0
- package/dist/js/treeshaking/document/cli/index.js +170 -0
- package/dist/js/treeshaking/document/constants.js +16 -0
- package/dist/js/treeshaking/document/index.js +8 -0
- package/dist/js/treeshaking/index.js +1 -1
- package/dist/js/treeshaking/router/cli/index.js +6 -18
- package/dist/js/treeshaking/router/runtime/plugin.js +5 -13
- package/dist/js/treeshaking/router/runtime/plugin.node.js +23 -36
- package/dist/js/treeshaking/router/runtime/root/index.js +17 -0
- package/dist/js/treeshaking/router/runtime/root/load.js +102 -0
- package/dist/js/treeshaking/router/runtime/utils.js +21 -39
- package/dist/js/treeshaking/router/runtime/withRouter.js +1 -0
- package/dist/js/treeshaking/ssr/cli/index.js +9 -31
- package/dist/js/treeshaking/ssr/index.js +26 -40
- package/dist/js/treeshaking/ssr/index.node.js +12 -29
- package/dist/js/treeshaking/ssr/prefetch.js +0 -13
- package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -4
- package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -21
- package/dist/js/treeshaking/ssr/react/prerender/util.js +3 -20
- package/dist/js/treeshaking/ssr/react/withCallback/index.js +1 -2
- package/dist/js/treeshaking/ssr/serverRender/helmet.js +12 -11
- package/dist/js/treeshaking/ssr/serverRender/index.js +1 -9
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -6
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +46 -15
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +9 -79
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +3 -5
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +46 -35
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +17 -24
- package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +20 -73
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +2 -6
- package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +5 -16
- package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +0 -2
- package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +2 -18
- package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +0 -1
- package/dist/js/treeshaking/ssr/serverRender/utils.js +5 -10
- package/dist/js/treeshaking/ssr/utils.js +8 -17
- package/dist/js/treeshaking/state/cli/index.js +3 -10
- package/dist/js/treeshaking/state/runtime/plugin.js +2 -10
- package/dist/types/cli/index.d.ts +0 -2
- package/dist/types/core/compatible.d.ts +5 -5
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/loader/loaderManager.d.ts +0 -1
- package/dist/types/core/loader/useLoader.d.ts +0 -5
- package/dist/types/core/plugin.d.ts +1 -13
- package/dist/types/document/Body.d.ts +4 -0
- package/dist/types/document/DocumentContext.d.ts +13 -0
- package/dist/types/document/DocumentStructrueContext.d.ts +10 -0
- package/dist/types/document/Head.d.ts +5 -0
- package/dist/types/document/Html.d.ts +4 -0
- package/dist/types/document/Root.d.ts +8 -0
- package/dist/types/document/Scripts.d.ts +2 -0
- package/dist/types/document/cli/index.d.ts +3 -0
- package/dist/types/document/constants.d.ts +14 -0
- package/dist/types/document/index.d.ts +8 -0
- package/dist/types/exports/server.d.ts +3 -3
- package/dist/types/index.d.ts +1 -1
- package/dist/types/router/cli/index.d.ts +0 -2
- package/dist/types/router/runtime/root/index.d.ts +8 -0
- package/dist/types/router/runtime/root/load.d.ts +22 -0
- package/dist/types/router/runtime/types.d.ts +0 -2
- package/dist/types/runtime-context.d.ts +1 -0
- package/dist/types/ssr/cli/index.d.ts +0 -2
- package/dist/types/ssr/prefetch.d.ts +2 -2
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +3 -2
- package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -1
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +3 -3
- package/dist/types/ssr/serverRender/renderToStream/template.d.ts +2 -2
- package/dist/types/ssr/serverRender/types.d.ts +1 -4
- package/dist/types/state/cli/index.d.ts +0 -2
- package/dist/types/state/types.d.ts +0 -1
- package/package.json +19 -11
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import ReactDomServer from 'react-dom/server';
|
|
7
|
+
import { build } from 'esbuild';
|
|
8
|
+
import { createDebugger, findExists } from '@modern-js/utils';
|
|
9
|
+
import { DocumentContext } from "../DocumentContext";
|
|
10
|
+
import { DOCUMENT_SCRIPTS_PLACEHOLDER, DOCUMENT_FILE_NAME, DOCUMENT_META_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP, DOC_EXT, DOCUMENT_SSR_PLACEHOLDER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, HTML_SEPARATOR } from "../constants";
|
|
11
|
+
var debug = createDebugger('html_genarate');
|
|
12
|
+
var getDocumenByEntryName = function getDocumenByEntryName(entrypoints, entryName) {
|
|
13
|
+
var _entrypoints$find;
|
|
14
|
+
var entryDir = (_entrypoints$find = entrypoints.find(function (item) {
|
|
15
|
+
return item.entryName === entryName;
|
|
16
|
+
})) === null || _entrypoints$find === void 0 ? void 0 : _entrypoints$find.absoluteEntryDir;
|
|
17
|
+
var docFile = findExists(DOC_EXT.map(function (item) {
|
|
18
|
+
return "".concat(entryDir).concat(path.sep).concat(DOCUMENT_FILE_NAME, ".").concat(item);
|
|
19
|
+
}));
|
|
20
|
+
return docFile || undefined;
|
|
21
|
+
};
|
|
22
|
+
export default (function () {
|
|
23
|
+
return {
|
|
24
|
+
name: '@modern-js/plugin-document',
|
|
25
|
+
pre: ['@modern-js/plugin-analyze'],
|
|
26
|
+
setup: function () {
|
|
27
|
+
var _setup = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(api) {
|
|
28
|
+
var getDocParams, documentEntry;
|
|
29
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
30
|
+
while (1) {
|
|
31
|
+
switch (_context2.prev = _context2.next) {
|
|
32
|
+
case 0:
|
|
33
|
+
getDocParams = function _getDocParams(params) {
|
|
34
|
+
var config = params.config,
|
|
35
|
+
templateParameters = params.templateParameters,
|
|
36
|
+
entryName = params.entryName;
|
|
37
|
+
// for enough params, devide as:process, config, templateParams
|
|
38
|
+
return {
|
|
39
|
+
processEnv: process.env,
|
|
40
|
+
config: {
|
|
41
|
+
output: config.output
|
|
42
|
+
},
|
|
43
|
+
entryName: entryName,
|
|
44
|
+
templateParams: templateParameters
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
documentEntry = function documentEntry(entryName, templateParameters) {
|
|
48
|
+
var _api$useAppContext = api.useAppContext(),
|
|
49
|
+
entrypoints = _api$useAppContext.entrypoints,
|
|
50
|
+
internalDirectory = _api$useAppContext.internalDirectory;
|
|
51
|
+
// search the document.[tsx|jsx|js|ts] under entry
|
|
52
|
+
// if not, use main as default
|
|
53
|
+
var documentFilePath = getDocumenByEntryName(entrypoints, entryName);
|
|
54
|
+
if (!documentFilePath) {
|
|
55
|
+
documentFilePath = getDocumenByEntryName(entrypoints, 'main');
|
|
56
|
+
}
|
|
57
|
+
// if no document file, do nothing as default
|
|
58
|
+
if (!documentFilePath) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return /*#__PURE__*/function () {
|
|
62
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
|
|
63
|
+
var htmlWebpackPlugin, documentParams, htmlOutputFile, Document, HTMLElement, html, scripts, metas;
|
|
64
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
65
|
+
while (1) {
|
|
66
|
+
switch (_context.prev = _context.next) {
|
|
67
|
+
case 0:
|
|
68
|
+
htmlWebpackPlugin = _ref.htmlWebpackPlugin;
|
|
69
|
+
documentParams = getDocParams({
|
|
70
|
+
config: api.useConfigContext(),
|
|
71
|
+
entryName: entryName,
|
|
72
|
+
templateParameters: templateParameters
|
|
73
|
+
});
|
|
74
|
+
htmlOutputFile = path.join(internalDirectory, "./document/_".concat(entryName, ".html.js")); // transform document file to html string
|
|
75
|
+
_context.next = 5;
|
|
76
|
+
return build({
|
|
77
|
+
entryPoints: [documentFilePath],
|
|
78
|
+
// write: false,
|
|
79
|
+
outfile: htmlOutputFile,
|
|
80
|
+
platform: 'node',
|
|
81
|
+
target: 'es6',
|
|
82
|
+
loader: {
|
|
83
|
+
'.ts': 'ts',
|
|
84
|
+
'.tsx': 'tsx'
|
|
85
|
+
},
|
|
86
|
+
bundle: true,
|
|
87
|
+
plugins: [{
|
|
88
|
+
name: 'make-all-packages-external',
|
|
89
|
+
setup: function setup(build) {
|
|
90
|
+
// https://github.com/evanw/esbuild/issues/619#issuecomment-751995294
|
|
91
|
+
build.onResolve({
|
|
92
|
+
filter: /^[^./]|^\.[^./]|^\.\.[^/]/
|
|
93
|
+
}, function (args) {
|
|
94
|
+
var external = true;
|
|
95
|
+
// FIXME: windows external entrypoint
|
|
96
|
+
if (args.kind === 'entry-point') {
|
|
97
|
+
external = false;
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
path: args.path,
|
|
101
|
+
external: external
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}]
|
|
106
|
+
});
|
|
107
|
+
case 5:
|
|
108
|
+
_context.next = 7;
|
|
109
|
+
return import(htmlOutputFile);
|
|
110
|
+
case 7:
|
|
111
|
+
Document = _context.sent["default"];
|
|
112
|
+
HTMLElement = /*#__PURE__*/React.createElement(DocumentContext.Provider, {
|
|
113
|
+
value: documentParams
|
|
114
|
+
}, /*#__PURE__*/React.createElement(Document, null));
|
|
115
|
+
html = ReactDomServer.renderToStaticMarkup(HTMLElement);
|
|
116
|
+
debug("entry %s's document jsx rendered html: %o", entryName, html);
|
|
117
|
+
scripts = [htmlWebpackPlugin.tags.headTags.filter(function (item) {
|
|
118
|
+
return item.tagName === 'script';
|
|
119
|
+
}).join(''), htmlWebpackPlugin.tags.bodyTags.toString()].join('');
|
|
120
|
+
metas = [templateParameters.meta, htmlWebpackPlugin.tags.headTags.filter(function (item) {
|
|
121
|
+
return item.tagName !== 'script';
|
|
122
|
+
}).join('')].join(''); // replace the html placeholder while transfer string to jsx component is not a easy way
|
|
123
|
+
return _context.abrupt("return", "<!DOCTYPE html>".concat(html).replace(DOCUMENT_META_PLACEHOLDER, metas).replace(DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR).replace(DOCUMENT_SCRIPTS_PLACEHOLDER, scripts).replace(DOCUMENT_CHUNKSMAP_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP[DOCUMENT_CHUNKSMAP_PLACEHOLDER]).replace(DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP[DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]));
|
|
124
|
+
case 14:
|
|
125
|
+
case "end":
|
|
126
|
+
return _context.stop();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}, _callee);
|
|
130
|
+
}));
|
|
131
|
+
return function (_x2) {
|
|
132
|
+
return _ref2.apply(this, arguments);
|
|
133
|
+
};
|
|
134
|
+
}();
|
|
135
|
+
};
|
|
136
|
+
return _context2.abrupt("return", {
|
|
137
|
+
config: function config() {
|
|
138
|
+
return {
|
|
139
|
+
tools: {
|
|
140
|
+
htmlPlugin: function htmlPlugin(options, entry) {
|
|
141
|
+
// just for reuse the baseParames calculate by builder:
|
|
142
|
+
// https://github.com/modern-js-dev/modern.js/blob/1abb452a87ae1adbcf8da47d62c05da39cbe4d69/packages/builder/builder-webpack-provider/src/plugins/html.ts#L69-L103
|
|
143
|
+
var hackParameters = typeof (options === null || options === void 0 ? void 0 : options.templateParameters) === 'function' ? options === null || options === void 0 ? void 0 : options.templateParameters({}, {}, {}, {}) : _objectSpread({}, options === null || options === void 0 ? void 0 : options.templateParameters);
|
|
144
|
+
var templateContent = documentEntry(entry.entryName,
|
|
145
|
+
// options,
|
|
146
|
+
hackParameters);
|
|
147
|
+
var documentHtmlOptions = templateContent ? {
|
|
148
|
+
templateContent: templateContent,
|
|
149
|
+
inject: false
|
|
150
|
+
} : {};
|
|
151
|
+
return _objectSpread(_objectSpread({}, options), documentHtmlOptions);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
case 3:
|
|
158
|
+
case "end":
|
|
159
|
+
return _context2.stop();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}, _callee2);
|
|
163
|
+
}));
|
|
164
|
+
function setup(_x) {
|
|
165
|
+
return _setup.apply(this, arguments);
|
|
166
|
+
}
|
|
167
|
+
return setup;
|
|
168
|
+
}()
|
|
169
|
+
};
|
|
170
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
var _PLACEHOLDER_REPLACER;
|
|
3
|
+
export var DOC_EXT = ['jsx', 'tsx', 'ts', 'js'];
|
|
4
|
+
export var DOCUMENT_META_PLACEHOLDER = encodeURIComponent('<%= meta %>');
|
|
5
|
+
export var HTML_SEPARATOR = '<!--<?- html ?>-->';
|
|
6
|
+
export var HTML_CHUNKSMAP_SEPARATOR = '<!--<?- chunksMap.js ?>-->';
|
|
7
|
+
export var HTML_SSRDATASCRIPT_SEPARATOR = '<!--<?- SSRDataScript ?>-->';
|
|
8
|
+
// export const HTML_BOTTOMTPL_SEPARATOR = '<!--<?- bottomTemplate ?>-->'; // document jsx not need bottom
|
|
9
|
+
|
|
10
|
+
export var DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
|
|
11
|
+
export var DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(HTML_CHUNKSMAP_SEPARATOR);
|
|
12
|
+
export var DOCUMENT_SSRDATASCRIPT_PLACEHOLDER = encodeURIComponent(HTML_SSRDATASCRIPT_SEPARATOR);
|
|
13
|
+
export var DOCUMENT_FILE_NAME = 'document';
|
|
14
|
+
export var DOCUMENT_SCRIPTS_PLACEHOLDER = encodeURIComponent('<!-- chunk scripts placeholder -->');
|
|
15
|
+
export var DOCUMENT_NO_SCRIPTE_PLACEHOLDER = encodeURIComponent('<!-- no-script -->');
|
|
16
|
+
export var PLACEHOLDER_REPLACER_MAP = (_PLACEHOLDER_REPLACER = {}, _defineProperty(_PLACEHOLDER_REPLACER, DOCUMENT_NO_SCRIPTE_PLACEHOLDER, "We're sorry but react app doesn't work properly without JavaScript enabled. Please enable it to continue."), _defineProperty(_PLACEHOLDER_REPLACER, DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR), _defineProperty(_PLACEHOLDER_REPLACER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, HTML_CHUNKSMAP_SEPARATOR), _defineProperty(_PLACEHOLDER_REPLACER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, HTML_SSRDATASCRIPT_SEPARATOR), _PLACEHOLDER_REPLACER);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { isBrowser } from "./common";
|
|
2
|
-
export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext,
|
|
2
|
+
export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, defineConfig, registerInit, useRuntimeContext } from "./core";
|
|
@@ -26,20 +26,16 @@ export default (function () {
|
|
|
26
26
|
},
|
|
27
27
|
modifyEntryImports: function modifyEntryImports(_ref) {
|
|
28
28
|
var _userConfig$runtime, _userConfig$runtime$r;
|
|
29
|
-
|
|
30
29
|
var entrypoint = _ref.entrypoint,
|
|
31
|
-
|
|
30
|
+
imports = _ref.imports;
|
|
32
31
|
var entryName = entrypoint.entryName,
|
|
33
|
-
|
|
32
|
+
fileSystemRoutes = entrypoint.fileSystemRoutes;
|
|
34
33
|
var userConfig = api.useResolvedConfigContext();
|
|
35
34
|
var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$runtime = userConfig.runtime) === null || _userConfig$runtime === void 0 ? void 0 : (_userConfig$runtime$r = _userConfig$runtime.router) === null || _userConfig$runtime$r === void 0 ? void 0 : _userConfig$runtime$r.legacy);
|
|
36
|
-
|
|
37
35
|
var _api$useAppContext = api.useAppContext(),
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
packageName = _api$useAppContext.packageName;
|
|
40
37
|
var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
|
|
41
38
|
runtimeConfigMap.set(entryName, runtimeConfig);
|
|
42
|
-
|
|
43
39
|
if (runtimeConfig !== null && runtimeConfig !== void 0 && runtimeConfig.router) {
|
|
44
40
|
if (!isLegacy) {
|
|
45
41
|
imports.push({
|
|
@@ -52,7 +48,6 @@ export default (function () {
|
|
|
52
48
|
} else if (fileSystemRoutes) {
|
|
53
49
|
throw new Error("should enable runtime.router for entry ".concat(entryName));
|
|
54
50
|
}
|
|
55
|
-
|
|
56
51
|
return {
|
|
57
52
|
entrypoint: entrypoint,
|
|
58
53
|
imports: imports
|
|
@@ -60,19 +55,15 @@ export default (function () {
|
|
|
60
55
|
},
|
|
61
56
|
modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(_ref2) {
|
|
62
57
|
var _userConfig$runtime2, _userConfig$runtime2$;
|
|
63
|
-
|
|
64
58
|
var entrypoint = _ref2.entrypoint,
|
|
65
|
-
|
|
59
|
+
plugins = _ref2.plugins;
|
|
66
60
|
var entryName = entrypoint.entryName,
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
fileSystemRoutes = entrypoint.fileSystemRoutes;
|
|
69
62
|
var _api$useAppContext2 = api.useAppContext(),
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
serverRoutes = _api$useAppContext2.serverRoutes;
|
|
72
64
|
var userConfig = api.useResolvedConfigContext();
|
|
73
65
|
var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$runtime2 = userConfig.runtime) === null || _userConfig$runtime2 === void 0 ? void 0 : (_userConfig$runtime2$ = _userConfig$runtime2.router) === null || _userConfig$runtime2$ === void 0 ? void 0 : _userConfig$runtime2$.legacy);
|
|
74
66
|
var runtimeConfig = runtimeConfigMap.get(entryName);
|
|
75
|
-
|
|
76
67
|
if (runtimeConfig.router && !isLegacy) {
|
|
77
68
|
// Todo: plugin-router best to only handle manage client route.
|
|
78
69
|
// here support base server route usage, part for compatibility
|
|
@@ -92,7 +83,6 @@ export default (function () {
|
|
|
92
83
|
})).replace(/"routesConfig"\s*:\s*"((\S|\s)+)"/g, '"routesConfig": $1,')
|
|
93
84
|
});
|
|
94
85
|
}
|
|
95
|
-
|
|
96
86
|
return {
|
|
97
87
|
entrypoint: entrypoint,
|
|
98
88
|
plugins: plugins
|
|
@@ -100,10 +90,8 @@ export default (function () {
|
|
|
100
90
|
},
|
|
101
91
|
addRuntimeExports: function addRuntimeExports() {
|
|
102
92
|
var _userConfig$runtime3, _userConfig$runtime3$;
|
|
103
|
-
|
|
104
93
|
var userConfig = api.useResolvedConfigContext();
|
|
105
94
|
var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$runtime3 = userConfig.runtime) === null || _userConfig$runtime3 === void 0 ? void 0 : (_userConfig$runtime3$ = _userConfig$runtime3.router) === null || _userConfig$runtime3$ === void 0 ? void 0 : _userConfig$runtime3$.legacy);
|
|
106
|
-
|
|
107
95
|
if (!isLegacy) {
|
|
108
96
|
pluginsExportsUtils.addExport("export { default as router } from '@modern-js/runtime/router'");
|
|
109
97
|
}
|
|
@@ -6,25 +6,22 @@ import { renderRoutes } from "./utils";
|
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
export var routerPlugin = function routerPlugin(_ref) {
|
|
8
8
|
var _ref$serverBase = _ref.serverBase,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
serverBase = _ref$serverBase === void 0 ? [] : _ref$serverBase,
|
|
10
|
+
_ref$supportHtml5Hist = _ref.supportHtml5History,
|
|
11
|
+
supportHtml5History = _ref$supportHtml5Hist === void 0 ? true : _ref$supportHtml5Hist,
|
|
12
|
+
routesConfig = _ref.routesConfig,
|
|
13
|
+
createRoutes = _ref.createRoutes;
|
|
15
14
|
var select = function select(pathname) {
|
|
16
15
|
return serverBase.find(function (baseUrl) {
|
|
17
16
|
return pathname.search(baseUrl) === 0;
|
|
18
17
|
}) || '/';
|
|
19
18
|
};
|
|
20
|
-
|
|
21
19
|
return {
|
|
22
20
|
name: '@modern-js/plugin-router',
|
|
23
21
|
setup: function setup() {
|
|
24
22
|
return {
|
|
25
23
|
hoc: function hoc(_ref2, next) {
|
|
26
24
|
var App = _ref2.App;
|
|
27
|
-
|
|
28
25
|
// can not get routes config, skip wrapping React Router.
|
|
29
26
|
// e.g. App.tsx as the entrypoint
|
|
30
27
|
if (!routesConfig) {
|
|
@@ -32,11 +29,9 @@ export var routerPlugin = function routerPlugin(_ref) {
|
|
|
32
29
|
App: App
|
|
33
30
|
});
|
|
34
31
|
}
|
|
35
|
-
|
|
36
32
|
var getRouteApp = function getRouteApp() {
|
|
37
33
|
return function (props) {
|
|
38
34
|
var _window$_SERVER_DATA;
|
|
39
|
-
|
|
40
35
|
var routeElements = renderRoutes(routesConfig);
|
|
41
36
|
var routes = createRoutes ? createRoutes() : createRoutesFromElements(routeElements);
|
|
42
37
|
var baseUrl = ((_window$_SERVER_DATA = window._SERVER_DATA) === null || _window$_SERVER_DATA === void 0 ? void 0 : _window$_SERVER_DATA.router.baseUrl) || select(location.pathname);
|
|
@@ -52,15 +47,12 @@ export var routerPlugin = function routerPlugin(_ref) {
|
|
|
52
47
|
}));
|
|
53
48
|
};
|
|
54
49
|
};
|
|
55
|
-
|
|
56
50
|
var RouteApp = getRouteApp();
|
|
57
|
-
|
|
58
51
|
if (routesConfig.globalApp) {
|
|
59
52
|
return next({
|
|
60
53
|
App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
|
|
61
54
|
});
|
|
62
55
|
}
|
|
63
|
-
|
|
64
56
|
return next({
|
|
65
57
|
App: RouteApp
|
|
66
58
|
});
|
|
@@ -10,17 +10,21 @@ import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
|
10
10
|
import { installGlobals } from '@remix-run/node';
|
|
11
11
|
import { createRoutesFromElements } from 'react-router-dom';
|
|
12
12
|
import { RuntimeReactContext } from "../../core";
|
|
13
|
-
import { renderRoutes } from "./utils";
|
|
13
|
+
import { renderRoutes } from "./utils";
|
|
14
14
|
|
|
15
|
+
// Polyfill Web Fetch API
|
|
15
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
|
-
installGlobals();
|
|
17
|
+
installGlobals();
|
|
17
18
|
|
|
19
|
+
// TODO: polish
|
|
18
20
|
function createFetchRequest(req) {
|
|
19
21
|
// const origin = `${req.protocol}://${req.get('host')}`;
|
|
20
|
-
var origin = "".concat(req.protocol, "://").concat(req.host);
|
|
21
|
-
|
|
22
|
+
var origin = "".concat(req.protocol, "://").concat(req.host);
|
|
23
|
+
// Note: This had to take originalUrl into account for presumably vite's proxying
|
|
22
24
|
var url = new URL(req.originalUrl || req.url, origin);
|
|
23
|
-
var controller = new AbortController();
|
|
25
|
+
var controller = new AbortController();
|
|
26
|
+
|
|
27
|
+
// req.on('close', () => {
|
|
24
28
|
// controller.abort();
|
|
25
29
|
// });
|
|
26
30
|
|
|
@@ -28,26 +32,24 @@ function createFetchRequest(req) {
|
|
|
28
32
|
method: req.method,
|
|
29
33
|
headers: createFetchHeaders(req.headers),
|
|
30
34
|
signal: controller.signal
|
|
31
|
-
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// if (req.method !== 'GET' && req.method !== 'HEAD') {
|
|
32
38
|
// init.body = req.body;
|
|
33
39
|
// }
|
|
34
40
|
|
|
35
41
|
return new Request(url.href, init);
|
|
36
42
|
}
|
|
37
|
-
|
|
38
43
|
export function createFetchHeaders(requestHeaders) {
|
|
39
44
|
var headers = new Headers();
|
|
40
|
-
|
|
41
45
|
for (var _i = 0, _Object$entries = Object.entries(requestHeaders); _i < _Object$entries.length; _i++) {
|
|
42
46
|
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
key = _Object$entries$_i[0],
|
|
48
|
+
values = _Object$entries$_i[1];
|
|
46
49
|
if (values) {
|
|
47
50
|
if (Array.isArray(values)) {
|
|
48
51
|
var _iterator = _createForOfIteratorHelper(values),
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
_step;
|
|
51
53
|
try {
|
|
52
54
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
53
55
|
var value = _step.value;
|
|
@@ -63,12 +65,11 @@ export function createFetchHeaders(requestHeaders) {
|
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
|
-
|
|
67
68
|
return headers;
|
|
68
69
|
}
|
|
69
70
|
export var routerPlugin = function routerPlugin(_ref) {
|
|
70
71
|
var routesConfig = _ref.routesConfig,
|
|
71
|
-
|
|
72
|
+
createRoutes = _ref.createRoutes;
|
|
72
73
|
return {
|
|
73
74
|
name: '@modern-js/plugin-router',
|
|
74
75
|
setup: function setup() {
|
|
@@ -76,22 +77,18 @@ export var routerPlugin = function routerPlugin(_ref) {
|
|
|
76
77
|
init: function init(_ref2, next) {
|
|
77
78
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
78
79
|
var context, _ref3, request, routeElements, routes, _createStaticHandler, query, remixRequest, routerContext, router;
|
|
79
|
-
|
|
80
80
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
81
81
|
while (1) {
|
|
82
82
|
switch (_context.prev = _context.next) {
|
|
83
83
|
case 0:
|
|
84
84
|
context = _ref2.context;
|
|
85
|
-
|
|
86
85
|
if (routesConfig) {
|
|
87
86
|
_context.next = 3;
|
|
88
87
|
break;
|
|
89
88
|
}
|
|
90
|
-
|
|
91
89
|
return _context.abrupt("return", next({
|
|
92
90
|
context: context
|
|
93
91
|
}));
|
|
94
|
-
|
|
95
92
|
case 3:
|
|
96
93
|
_ref3 = context.ssrContext, request = _ref3.request;
|
|
97
94
|
routeElements = renderRoutes(routesConfig);
|
|
@@ -100,28 +97,24 @@ export var routerPlugin = function routerPlugin(_ref) {
|
|
|
100
97
|
remixRequest = createFetchRequest(request);
|
|
101
98
|
_context.next = 10;
|
|
102
99
|
return query(remixRequest);
|
|
103
|
-
|
|
104
100
|
case 10:
|
|
105
101
|
routerContext = _context.sent;
|
|
106
|
-
|
|
107
102
|
if (!(routerContext instanceof Response)) {
|
|
108
103
|
_context.next = 13;
|
|
109
104
|
break;
|
|
110
105
|
}
|
|
111
|
-
|
|
112
|
-
return _context.abrupt("return", next({
|
|
113
|
-
context: context
|
|
114
|
-
}));
|
|
115
|
-
|
|
106
|
+
return _context.abrupt("return", routerContext);
|
|
116
107
|
case 13:
|
|
117
108
|
router = createStaticRouter(routes, routerContext);
|
|
118
109
|
context.router = router;
|
|
119
110
|
context.routerContext = routerContext;
|
|
111
|
+
context.routes = routes;
|
|
112
|
+
// set routeManifest in context to be consistent with csr context
|
|
113
|
+
context.routeManifest = context.ssrContext.routeManifest;
|
|
120
114
|
return _context.abrupt("return", next({
|
|
121
115
|
context: context
|
|
122
116
|
}));
|
|
123
|
-
|
|
124
|
-
case 17:
|
|
117
|
+
case 19:
|
|
125
118
|
case "end":
|
|
126
119
|
return _context.stop();
|
|
127
120
|
}
|
|
@@ -131,7 +124,6 @@ export var routerPlugin = function routerPlugin(_ref) {
|
|
|
131
124
|
},
|
|
132
125
|
hoc: function hoc(_ref4, next) {
|
|
133
126
|
var App = _ref4.App;
|
|
134
|
-
|
|
135
127
|
// can not get routes config, skip wrapping React Router.
|
|
136
128
|
// e.g. App.tsx as the entrypoint
|
|
137
129
|
if (!routesConfig) {
|
|
@@ -139,13 +131,11 @@ export var routerPlugin = function routerPlugin(_ref) {
|
|
|
139
131
|
App: App
|
|
140
132
|
});
|
|
141
133
|
}
|
|
142
|
-
|
|
143
134
|
var getRouteApp = function getRouteApp() {
|
|
144
135
|
return function (props) {
|
|
145
136
|
var _useContext = useContext(RuntimeReactContext),
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
137
|
+
router = _useContext.router,
|
|
138
|
+
routerContext = _useContext.routerContext;
|
|
149
139
|
return /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
|
|
150
140
|
children: /*#__PURE__*/_jsx(StaticRouterProvider, {
|
|
151
141
|
router: router,
|
|
@@ -155,15 +145,12 @@ export var routerPlugin = function routerPlugin(_ref) {
|
|
|
155
145
|
}));
|
|
156
146
|
};
|
|
157
147
|
};
|
|
158
|
-
|
|
159
148
|
var RouteApp = getRouteApp();
|
|
160
|
-
|
|
161
149
|
if (routesConfig.globalApp) {
|
|
162
150
|
return next({
|
|
163
151
|
App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
|
|
164
152
|
});
|
|
165
153
|
}
|
|
166
|
-
|
|
167
154
|
return next({
|
|
168
155
|
App: RouteApp
|
|
169
156
|
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { useContext, useEffect } from 'react';
|
|
2
|
+
import { useLocation } from 'react-router-dom';
|
|
3
|
+
import { RuntimeReactContext } from "../../../core";
|
|
4
|
+
import { handleLoad } from "./load";
|
|
5
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export function RootLayout(props) {
|
|
8
|
+
var location = useLocation();
|
|
9
|
+
var context = useContext(RuntimeReactContext);
|
|
10
|
+
useEffect(function () {
|
|
11
|
+
var routes = props.routes;
|
|
12
|
+
handleLoad(routes, location, context.routeManifest);
|
|
13
|
+
}, [location]);
|
|
14
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
15
|
+
children: props.children
|
|
16
|
+
});
|
|
17
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
4
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
5
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
6
|
+
import { matchRoutes } from 'react-router-dom';
|
|
7
|
+
var Logger = /*#__PURE__*/function () {
|
|
8
|
+
function Logger(options) {
|
|
9
|
+
_classCallCheck(this, Logger);
|
|
10
|
+
_defineProperty(this, "enableLogging", void 0);
|
|
11
|
+
this.enableLogging = options.enableLogging;
|
|
12
|
+
}
|
|
13
|
+
_createClass(Logger, [{
|
|
14
|
+
key: "log",
|
|
15
|
+
value: function log() {
|
|
16
|
+
if (this.enableLogging) {
|
|
17
|
+
var _console;
|
|
18
|
+
// eslint-disable-next-line no-console
|
|
19
|
+
(_console = console).log.apply(_console, arguments);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}], [{
|
|
23
|
+
key: "getLogger",
|
|
24
|
+
value: function getLogger(options) {
|
|
25
|
+
if (this.logger) {
|
|
26
|
+
return this.logger;
|
|
27
|
+
}
|
|
28
|
+
this.logger = new Logger(options);
|
|
29
|
+
return this.logger;
|
|
30
|
+
}
|
|
31
|
+
}]);
|
|
32
|
+
return Logger;
|
|
33
|
+
}();
|
|
34
|
+
_defineProperty(Logger, "logger", void 0);
|
|
35
|
+
export function handleLoad(routes, location, routeManifest) {
|
|
36
|
+
if (!routeManifest || !routeManifest.enableFetchParallel === false) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
var routeAssets = routeManifest.routeAssets;
|
|
40
|
+
Logger.getLogger({
|
|
41
|
+
enableLogging: routeManifest.enableLogging
|
|
42
|
+
}).log('handle page load');
|
|
43
|
+
var matches = matchClientRoutes(routes, location);
|
|
44
|
+
matches === null || matches === void 0 ? void 0 : matches.forEach(function (match) {
|
|
45
|
+
return loadRouteModule(match.route, routeAssets);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export function matchClientRoutes(routes, location) {
|
|
49
|
+
var matches = matchRoutes(routes, location);
|
|
50
|
+
return matches;
|
|
51
|
+
}
|
|
52
|
+
export function loadRouteModule(_x, _x2) {
|
|
53
|
+
return _loadRouteModule.apply(this, arguments);
|
|
54
|
+
}
|
|
55
|
+
function _loadRouteModule() {
|
|
56
|
+
_loadRouteModule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(route, routeAssets) {
|
|
57
|
+
var routeId, chunkIds;
|
|
58
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
59
|
+
while (1) {
|
|
60
|
+
switch (_context.prev = _context.next) {
|
|
61
|
+
case 0:
|
|
62
|
+
routeId = route.id;
|
|
63
|
+
if (routeId) {
|
|
64
|
+
_context.next = 3;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
return _context.abrupt("return");
|
|
68
|
+
case 3:
|
|
69
|
+
if (routeAssets[routeId]) {
|
|
70
|
+
_context.next = 5;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
return _context.abrupt("return");
|
|
74
|
+
case 5:
|
|
75
|
+
chunkIds = routeAssets[routeId].chunkIds;
|
|
76
|
+
if (chunkIds) {
|
|
77
|
+
_context.next = 8;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
return _context.abrupt("return");
|
|
81
|
+
case 8:
|
|
82
|
+
_context.prev = 8;
|
|
83
|
+
_context.next = 11;
|
|
84
|
+
return Promise.all(chunkIds.map(function (chunkId) {
|
|
85
|
+
return __webpack_chunk_load__(String(chunkId));
|
|
86
|
+
}));
|
|
87
|
+
case 11:
|
|
88
|
+
_context.next = 16;
|
|
89
|
+
break;
|
|
90
|
+
case 13:
|
|
91
|
+
_context.prev = 13;
|
|
92
|
+
_context.t0 = _context["catch"](8);
|
|
93
|
+
console.error(_context.t0);
|
|
94
|
+
case 16:
|
|
95
|
+
case "end":
|
|
96
|
+
return _context.stop();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}, _callee, null, [[8, 13]]);
|
|
100
|
+
}));
|
|
101
|
+
return _loadRouteModule.apply(this, arguments);
|
|
102
|
+
}
|