@modern-js/app-tools 2.15.0 → 2.17.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 +68 -0
- package/dist/cjs/analyze/constants.js +37 -61
- package/dist/cjs/analyze/generateCode.js +102 -127
- package/dist/cjs/analyze/getBundleEntry.js +33 -66
- package/dist/cjs/analyze/getClientRoutes/getRoutes.js +61 -117
- package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +61 -115
- package/dist/cjs/analyze/getClientRoutes/index.js +15 -28
- package/dist/cjs/analyze/getClientRoutes/utils.js +24 -48
- package/dist/cjs/analyze/getFileSystemEntry.js +39 -79
- package/dist/cjs/analyze/getHtmlTemplate.js +88 -98
- package/dist/cjs/analyze/getServerRoutes.js +67 -110
- package/dist/cjs/analyze/index.js +265 -257
- package/dist/cjs/analyze/isDefaultExportFunction.js +66 -44
- package/dist/cjs/analyze/makeLegalIdentifier.js +7 -25
- package/dist/cjs/analyze/nestedRoutes.js +99 -104
- package/dist/cjs/analyze/templates.js +49 -110
- package/dist/cjs/analyze/utils.js +98 -102
- package/dist/cjs/builder/builder-rspack/adapterCopy.js +58 -100
- package/dist/cjs/builder/builder-rspack/index.js +14 -30
- package/dist/cjs/builder/builder-webpack/adapterModern.js +33 -50
- package/dist/cjs/builder/builder-webpack/createCopyPattern.js +16 -32
- package/dist/cjs/builder/builder-webpack/index.js +65 -46
- package/dist/cjs/builder/generator/createBuilderOptions.js +10 -26
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +11 -27
- package/dist/cjs/builder/generator/getBuilderTargets.js +13 -29
- package/dist/cjs/builder/generator/index.js +61 -55
- package/dist/cjs/builder/index.js +53 -43
- package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +13 -36
- package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +90 -90
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +108 -111
- package/dist/cjs/builder/shared/builderPlugins/index.js +20 -19
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +30 -30
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +32 -38
- package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +86 -116
- package/dist/cjs/builder/shared/bundlerPlugins/index.js +20 -19
- package/dist/cjs/builder/shared/createCopyInfo.js +16 -42
- package/dist/cjs/builder/shared/index.js +20 -19
- package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +8 -24
- package/dist/cjs/builder/shared/types.js +4 -15
- package/dist/cjs/commands/build.js +23 -40
- package/dist/cjs/commands/deploy.js +7 -25
- package/dist/cjs/commands/dev.js +38 -57
- package/dist/cjs/commands/index.js +20 -19
- package/dist/cjs/commands/inspect.js +10 -30
- package/dist/cjs/commands/serve.js +28 -66
- package/dist/cjs/config/default.js +34 -34
- package/dist/cjs/config/index.js +20 -19
- package/dist/cjs/config/initialize/index.js +11 -29
- package/dist/cjs/config/initialize/inits.js +103 -82
- package/dist/cjs/config/legacy/createHtmlConfig.js +8 -40
- package/dist/cjs/config/legacy/createOutputConfig.js +8 -51
- package/dist/cjs/config/legacy/createSourceConfig.js +8 -38
- package/dist/cjs/config/legacy/createToolsConfig.js +8 -43
- package/dist/cjs/config/legacy/index.js +22 -46
- package/dist/cjs/defineConfig.js +16 -31
- package/dist/cjs/exports/server.js +7 -25
- package/dist/cjs/hooks.js +33 -51
- package/dist/cjs/index.js +185 -166
- package/dist/cjs/initialize/index.js +84 -100
- package/dist/cjs/locale/en.js +13 -27
- package/dist/cjs/locale/index.js +18 -28
- package/dist/cjs/locale/zh.js +13 -27
- package/dist/cjs/schema/Schema.js +27 -31
- package/dist/cjs/schema/index.js +141 -71
- package/dist/cjs/schema/legacy.js +273 -96
- package/dist/cjs/types/config/deploy.js +4 -15
- package/dist/cjs/types/config/dev.js +4 -15
- package/dist/cjs/types/config/experiments.js +4 -15
- package/dist/cjs/types/config/html.js +4 -15
- package/dist/cjs/types/config/index.js +18 -17
- package/dist/cjs/types/config/output.js +4 -15
- package/dist/cjs/types/config/performance.js +4 -15
- package/dist/cjs/types/config/security.js +4 -15
- package/dist/cjs/types/config/source.js +4 -15
- package/dist/cjs/types/config/tools.js +4 -15
- package/dist/cjs/types/hooks.js +4 -15
- package/dist/cjs/types/index.js +20 -19
- package/dist/cjs/types/legacyConfig/deploy.js +4 -15
- package/dist/cjs/types/legacyConfig/dev.js +4 -15
- package/dist/cjs/types/legacyConfig/index.js +4 -15
- package/dist/cjs/types/legacyConfig/output.js +4 -15
- package/dist/cjs/types/legacyConfig/source.js +4 -15
- package/dist/cjs/types/legacyConfig/tools.js +4 -15
- package/dist/cjs/types/utils.js +4 -15
- package/dist/cjs/utils/config.js +74 -79
- package/dist/cjs/utils/createServer.js +16 -42
- package/dist/cjs/utils/env.js +7 -25
- package/dist/cjs/utils/generateWatchFiles.js +31 -52
- package/dist/cjs/utils/getSelectedEntries.js +13 -35
- package/dist/cjs/utils/getServerInternalPlugins.js +8 -29
- package/dist/cjs/utils/printInstructions.js +10 -28
- package/dist/cjs/utils/restart.js +13 -31
- package/dist/cjs/utils/routes.js +18 -39
- package/dist/cjs/utils/types.js +4 -15
- package/dist/esm/analyze/constants.js +40 -41
- package/dist/esm/analyze/generateCode.js +477 -455
- package/dist/esm/analyze/getBundleEntry.js +53 -54
- package/dist/esm/analyze/getClientRoutes/getRoutes.js +201 -202
- package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +199 -200
- package/dist/esm/analyze/getClientRoutes/index.js +2 -3
- package/dist/esm/analyze/getClientRoutes/utils.js +15 -15
- package/dist/esm/analyze/getFileSystemEntry.js +86 -87
- package/dist/esm/analyze/getHtmlTemplate.js +289 -278
- package/dist/esm/analyze/getServerRoutes.js +203 -190
- package/dist/esm/analyze/index.js +679 -651
- package/dist/esm/analyze/isDefaultExportFunction.js +38 -39
- package/dist/esm/analyze/makeLegalIdentifier.js +8 -9
- package/dist/esm/analyze/nestedRoutes.js +400 -392
- package/dist/esm/analyze/templates.js +536 -509
- package/dist/esm/analyze/utils.js +357 -336
- package/dist/esm/builder/builder-rspack/adapterCopy.js +347 -330
- package/dist/esm/builder/builder-rspack/index.js +8 -9
- package/dist/esm/builder/builder-webpack/adapterModern.js +51 -43
- package/dist/esm/builder/builder-webpack/createCopyPattern.js +31 -32
- package/dist/esm/builder/builder-webpack/index.js +266 -249
- package/dist/esm/builder/generator/createBuilderOptions.js +37 -38
- package/dist/esm/builder/generator/createBuilderProviderConfig.js +62 -63
- package/dist/esm/builder/generator/getBuilderTargets.js +13 -14
- package/dist/esm/builder/generator/index.js +203 -196
- package/dist/esm/builder/index.js +183 -176
- package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +90 -91
- package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +300 -291
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +337 -329
- package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +108 -97
- package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +66 -64
- package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +364 -337
- package/dist/esm/builder/shared/createCopyInfo.js +9 -10
- package/dist/esm/builder/shared/loaders/serverModuleLoader.js +2 -3
- package/dist/esm/builder/shared/types.js +1 -1
- package/dist/esm/commands/build.js +279 -272
- package/dist/esm/commands/deploy.js +150 -144
- package/dist/esm/commands/dev.js +296 -289
- package/dist/esm/commands/inspect.js +144 -138
- package/dist/esm/commands/serve.js +241 -235
- package/dist/esm/config/default.js +202 -203
- package/dist/esm/config/initialize/index.js +7 -8
- package/dist/esm/config/initialize/inits.js +189 -181
- package/dist/esm/config/legacy/createHtmlConfig.js +17 -18
- package/dist/esm/config/legacy/createOutputConfig.js +41 -42
- package/dist/esm/config/legacy/createSourceConfig.js +38 -39
- package/dist/esm/config/legacy/createToolsConfig.js +24 -25
- package/dist/esm/config/legacy/index.js +31 -32
- package/dist/esm/defineConfig.js +52 -53
- package/dist/esm/exports/server.js +1 -2
- package/dist/esm/hooks.js +26 -27
- package/dist/esm/index.js +685 -671
- package/dist/esm/initialize/index.js +276 -269
- package/dist/esm/locale/en.js +36 -37
- package/dist/esm/locale/index.js +2 -2
- package/dist/esm/locale/zh.js +36 -37
- package/dist/esm/schema/Schema.js +255 -244
- package/dist/esm/schema/index.js +165 -165
- package/dist/esm/schema/legacy.js +316 -317
- package/dist/esm/types/config/deploy.js +1 -1
- package/dist/esm/types/config/dev.js +1 -1
- package/dist/esm/types/config/experiments.js +1 -1
- package/dist/esm/types/config/html.js +1 -1
- package/dist/esm/types/config/output.js +1 -1
- package/dist/esm/types/config/performance.js +1 -1
- package/dist/esm/types/config/security.js +1 -1
- package/dist/esm/types/config/source.js +1 -1
- package/dist/esm/types/config/tools.js +1 -1
- package/dist/esm/types/hooks.js +1 -1
- package/dist/esm/types/legacyConfig/deploy.js +1 -1
- package/dist/esm/types/legacyConfig/dev.js +1 -1
- package/dist/esm/types/legacyConfig/index.js +1 -1
- package/dist/esm/types/legacyConfig/output.js +1 -1
- package/dist/esm/types/legacyConfig/source.js +1 -1
- package/dist/esm/types/legacyConfig/tools.js +1 -1
- package/dist/esm/types/utils.js +1 -1
- package/dist/esm/utils/config.js +285 -278
- package/dist/esm/utils/createServer.js +242 -234
- package/dist/esm/utils/env.js +11 -12
- package/dist/esm/utils/generateWatchFiles.js +205 -190
- package/dist/esm/utils/getSelectedEntries.js +180 -173
- package/dist/esm/utils/getServerInternalPlugins.js +197 -191
- package/dist/esm/utils/printInstructions.js +147 -141
- package/dist/esm/utils/restart.js +179 -173
- package/dist/esm/utils/routes.js +146 -139
- package/dist/esm/utils/types.js +1 -1
- package/dist/esm-node/analyze/constants.js +31 -46
- package/dist/esm-node/analyze/generateCode.js +28 -94
- package/dist/esm-node/analyze/getBundleEntry.js +8 -27
- package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +24 -65
- package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +24 -63
- package/dist/esm-node/analyze/getClientRoutes/index.js +2 -6
- package/dist/esm-node/analyze/getClientRoutes/utils.js +5 -19
- package/dist/esm-node/analyze/getFileSystemEntry.js +10 -37
- package/dist/esm-node/analyze/getHtmlTemplate.js +29 -59
- package/dist/esm-node/analyze/getServerRoutes.js +43 -75
- package/dist/esm-node/analyze/index.js +208 -230
- package/dist/esm-node/analyze/isDefaultExportFunction.js +7 -5
- package/dist/esm-node/analyze/makeLegalIdentifier.js +1 -4
- package/dist/esm-node/analyze/nestedRoutes.js +23 -43
- package/dist/esm-node/analyze/templates.js +22 -69
- package/dist/esm-node/analyze/utils.js +66 -60
- package/dist/esm-node/builder/builder-rspack/adapterCopy.js +40 -62
- package/dist/esm-node/builder/builder-rspack/index.js +4 -5
- package/dist/esm-node/builder/builder-webpack/adapterModern.js +24 -26
- package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +3 -10
- package/dist/esm-node/builder/builder-webpack/index.js +13 -11
- package/dist/esm-node/builder/generator/createBuilderOptions.js +4 -5
- package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +5 -6
- package/dist/esm-node/builder/generator/getBuilderTargets.js +5 -11
- package/dist/esm-node/builder/generator/index.js +7 -16
- package/dist/esm-node/builder/index.js +2 -7
- package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +2 -6
- package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +34 -60
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +54 -74
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +23 -8
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +25 -16
- package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +66 -76
- package/dist/esm-node/builder/shared/createCopyInfo.js +2 -8
- package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +1 -4
- package/dist/esm-node/builder/shared/types.js +1 -0
- package/dist/esm-node/commands/build.js +7 -9
- package/dist/esm-node/commands/deploy.js +1 -4
- package/dist/esm-node/commands/dev.js +19 -27
- package/dist/esm-node/commands/inspect.js +3 -8
- package/dist/esm-node/commands/serve.js +7 -25
- package/dist/esm-node/config/default.js +20 -11
- package/dist/esm-node/config/initialize/index.js +1 -4
- package/dist/esm-node/config/initialize/inits.js +48 -54
- package/dist/esm-node/config/legacy/createHtmlConfig.js +2 -19
- package/dist/esm-node/config/legacy/createOutputConfig.js +2 -30
- package/dist/esm-node/config/legacy/createSourceConfig.js +2 -17
- package/dist/esm-node/config/legacy/createToolsConfig.js +2 -22
- package/dist/esm-node/config/legacy/index.js +3 -18
- package/dist/esm-node/defineConfig.js +7 -13
- package/dist/esm-node/exports/server.js +1 -4
- package/dist/esm-node/hooks.js +2 -9
- package/dist/esm-node/index.js +95 -120
- package/dist/esm-node/initialize/index.js +74 -87
- package/dist/esm-node/locale/en.js +7 -6
- package/dist/esm-node/locale/index.js +5 -5
- package/dist/esm-node/locale/zh.js +7 -6
- package/dist/esm-node/schema/Schema.js +19 -8
- package/dist/esm-node/schema/index.js +121 -36
- package/dist/esm-node/schema/legacy.js +262 -72
- package/dist/esm-node/types/config/deploy.js +1 -0
- package/dist/esm-node/types/config/dev.js +1 -0
- package/dist/esm-node/types/config/experiments.js +1 -0
- package/dist/esm-node/types/config/html.js +1 -0
- package/dist/esm-node/types/config/output.js +1 -0
- package/dist/esm-node/types/config/performance.js +1 -0
- package/dist/esm-node/types/config/security.js +1 -0
- package/dist/esm-node/types/config/source.js +1 -0
- package/dist/esm-node/types/config/tools.js +1 -0
- package/dist/esm-node/types/hooks.js +1 -0
- package/dist/esm-node/types/legacyConfig/deploy.js +1 -0
- package/dist/esm-node/types/legacyConfig/dev.js +1 -0
- package/dist/esm-node/types/legacyConfig/index.js +1 -0
- package/dist/esm-node/types/legacyConfig/output.js +1 -0
- package/dist/esm-node/types/legacyConfig/source.js +1 -0
- package/dist/esm-node/types/legacyConfig/tools.js +1 -0
- package/dist/esm-node/types/utils.js +1 -0
- package/dist/esm-node/utils/config.js +16 -47
- package/dist/esm-node/utils/createServer.js +5 -12
- package/dist/esm-node/utils/env.js +1 -4
- package/dist/esm-node/utils/generateWatchFiles.js +13 -20
- package/dist/esm-node/utils/getSelectedEntries.js +2 -9
- package/dist/esm-node/utils/getServerInternalPlugins.js +2 -8
- package/dist/esm-node/utils/printInstructions.js +1 -4
- package/dist/esm-node/utils/restart.js +2 -11
- package/dist/esm-node/utils/routes.js +4 -4
- package/dist/esm-node/utils/types.js +1 -0
- package/dist/types/index.d.ts +2 -2
- package/package.json +29 -25
|
@@ -1,50 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
8
6
|
for (var name in all)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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 templates_exports = {};
|
|
29
|
-
__export(templates_exports, {
|
|
30
|
-
fileSystemRoutes: () => fileSystemRoutes,
|
|
31
|
-
html: () => html,
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
32
13
|
index: () => index,
|
|
33
14
|
renderFunction: () => renderFunction,
|
|
15
|
+
html: () => html,
|
|
34
16
|
routesForServer: () => routesForServer,
|
|
17
|
+
fileSystemRoutes: () => fileSystemRoutes,
|
|
35
18
|
ssrLoaderCombinedModule: () => ssrLoaderCombinedModule
|
|
36
19
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}) => `
|
|
20
|
+
const _path = /* @__PURE__ */ _interop_require_default(require("path"));
|
|
21
|
+
const _utils = require("@modern-js/utils");
|
|
22
|
+
const _constants = require("./constants");
|
|
23
|
+
const _utils1 = require("./utils");
|
|
24
|
+
function _interop_require_default(obj) {
|
|
25
|
+
return obj && obj.__esModule ? obj : {
|
|
26
|
+
default: obj
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const index = ({ mountId, imports, renderFunction: renderFunction2, exportStatement }) => `
|
|
48
30
|
const IS_BROWSER = typeof window !== 'undefined' && window.name !== 'nodejs';
|
|
49
31
|
const IS_REACT18 = process.env.IS_REACT18 === 'true';
|
|
50
32
|
const MOUNT_ID = '${mountId}';
|
|
@@ -63,23 +45,17 @@ AppWrapper = render();
|
|
|
63
45
|
|
|
64
46
|
${exportStatement};
|
|
65
47
|
`;
|
|
66
|
-
const renderFunction = ({
|
|
67
|
-
plugins,
|
|
68
|
-
customBootstrap,
|
|
69
|
-
fileSystemRoutes: fileSystemRoutes2
|
|
70
|
-
}) => {
|
|
48
|
+
const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fileSystemRoutes2 }) => {
|
|
71
49
|
const bootstrap = "bootstrap(AppWrapper, MOUNT_ID, root, ReactDOM)";
|
|
72
50
|
return `
|
|
73
51
|
const finalAppConfig = {
|
|
74
52
|
...App.config,
|
|
75
|
-
...typeof ${
|
|
53
|
+
...typeof ${_constants.APP_CONFIG_NAME} === 'function' ? ${_constants.APP_CONFIG_NAME}() : {},
|
|
76
54
|
}
|
|
77
55
|
|
|
78
56
|
AppWrapper = createApp({
|
|
79
57
|
plugins: [
|
|
80
|
-
${plugins.map(
|
|
81
|
-
({ name, options, args }) => `${name}({...${options}, ...finalAppConfig?.${args || name}}),`
|
|
82
|
-
).join("\n")}
|
|
58
|
+
${plugins.map(({ name, options, args }) => `${name}({...${options}, ...finalAppConfig?.${args || name}}),`).join("\n")}
|
|
83
59
|
]
|
|
84
60
|
})(${fileSystemRoutes2 ? "" : `App`})
|
|
85
61
|
|
|
@@ -122,15 +98,13 @@ const html = (partials) => `
|
|
|
122
98
|
|
|
123
99
|
</html>
|
|
124
100
|
`;
|
|
125
|
-
const routesForServer = ({
|
|
126
|
-
routes
|
|
127
|
-
}) => {
|
|
101
|
+
const routesForServer = ({ routes }) => {
|
|
128
102
|
const loaders = [];
|
|
129
103
|
const traverseRouteTree = (route) => {
|
|
130
|
-
var _a;
|
|
131
104
|
let children;
|
|
132
105
|
if ("children" in route && route.children) {
|
|
133
|
-
|
|
106
|
+
var _route_children;
|
|
107
|
+
children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
|
|
134
108
|
}
|
|
135
109
|
let loader;
|
|
136
110
|
if (route.type === "nested") {
|
|
@@ -152,10 +126,7 @@ const routesForServer = ({
|
|
|
152
126
|
for (const route of routes) {
|
|
153
127
|
if ("type" in route) {
|
|
154
128
|
const newRoute = traverseRouteTree(route);
|
|
155
|
-
routesCode += `${JSON.stringify(newRoute, null, 2).replace(
|
|
156
|
-
/"(loader_[^"]+)"/g,
|
|
157
|
-
"$1"
|
|
158
|
-
)},`;
|
|
129
|
+
routesCode += `${JSON.stringify(newRoute, null, 2).replace(/"(loader_[^"]+)"/g, "$1")},`;
|
|
159
130
|
} else {
|
|
160
131
|
routesCode += `${JSON.stringify(route, null, 2)}`;
|
|
161
132
|
}
|
|
@@ -165,7 +136,7 @@ const routesForServer = ({
|
|
|
165
136
|
let importLoadersCode = "";
|
|
166
137
|
if (loaders.length > 0) {
|
|
167
138
|
importLoadersCode = loaders.map((loader, index2) => {
|
|
168
|
-
return `import loader_${index2} from "${(0,
|
|
139
|
+
return `import loader_${index2} from "${(0, _utils.slash)(loader)}"`;
|
|
169
140
|
}).join("\n");
|
|
170
141
|
}
|
|
171
142
|
return `
|
|
@@ -174,14 +145,7 @@ const routesForServer = ({
|
|
|
174
145
|
`;
|
|
175
146
|
};
|
|
176
147
|
const createMatchReg = (keyword) => new RegExp(`("${keyword}":\\s)"([^,]+)"`, "g");
|
|
177
|
-
const fileSystemRoutes = async ({
|
|
178
|
-
routes,
|
|
179
|
-
ssrMode,
|
|
180
|
-
nestedRoutesEntry,
|
|
181
|
-
entryName,
|
|
182
|
-
internalDirectory,
|
|
183
|
-
splitRouteChunks = true
|
|
184
|
-
}) => {
|
|
148
|
+
const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true }) => {
|
|
185
149
|
const components = [];
|
|
186
150
|
const loadings = [];
|
|
187
151
|
const errors = [];
|
|
@@ -189,12 +153,7 @@ const fileSystemRoutes = async ({
|
|
|
189
153
|
const loadersMap = {};
|
|
190
154
|
const configs = [];
|
|
191
155
|
const configsMap = {};
|
|
192
|
-
const loadersMapFile =
|
|
193
|
-
internalDirectory,
|
|
194
|
-
entryName,
|
|
195
|
-
import_constants.TEMP_LOADERS_DIR,
|
|
196
|
-
"map.json"
|
|
197
|
-
);
|
|
156
|
+
const loadersMapFile = _path.default.join(internalDirectory, entryName, _constants.TEMP_LOADERS_DIR, "map.json");
|
|
198
157
|
const importLazyCode = `
|
|
199
158
|
import { lazy } from "react";
|
|
200
159
|
import loadable, { lazy as loadableLazy } from "@modern-js/runtime/loadable"
|
|
@@ -205,15 +164,15 @@ const fileSystemRoutes = async ({
|
|
|
205
164
|
return "";
|
|
206
165
|
}
|
|
207
166
|
if (nestedRoutesEntry) {
|
|
208
|
-
return `?mapFile=${(0,
|
|
167
|
+
return `?mapFile=${(0, _utils.slash)(loadersMapFile)}&loaderId=${loaderId}`;
|
|
209
168
|
}
|
|
210
169
|
return "";
|
|
211
170
|
};
|
|
212
171
|
const traverseRouteTree = (route) => {
|
|
213
|
-
var _a;
|
|
214
172
|
let children;
|
|
215
173
|
if ("children" in route && route.children) {
|
|
216
|
-
|
|
174
|
+
var _route_children;
|
|
175
|
+
children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
|
|
217
176
|
}
|
|
218
177
|
let loading;
|
|
219
178
|
let error;
|
|
@@ -310,7 +269,10 @@ const fileSystemRoutes = async ({
|
|
|
310
269
|
...route,
|
|
311
270
|
component
|
|
312
271
|
};
|
|
313
|
-
const keywords = [
|
|
272
|
+
const keywords = [
|
|
273
|
+
"component",
|
|
274
|
+
"lazyImport"
|
|
275
|
+
];
|
|
314
276
|
const routeStr = JSON.stringify(finalRoute, null, 2);
|
|
315
277
|
const regs = keywords.map(createMatchReg);
|
|
316
278
|
const newRouteStr = regs.reduce((acc, reg) => acc.replace(reg, "$1$2"), routeStr).replace(/\\"/g, '"');
|
|
@@ -334,24 +296,20 @@ const fileSystemRoutes = async ({
|
|
|
334
296
|
let importLoadersCode = "";
|
|
335
297
|
for (const [key, loaderInfo] of Object.entries(loadersMap)) {
|
|
336
298
|
if (loaderInfo.inline) {
|
|
337
|
-
importLoadersCode += `import { loader as ${key} } from "${(0,
|
|
338
|
-
loaderInfo.filePath
|
|
339
|
-
)}${getDataLoaderPath(key)}";
|
|
299
|
+
importLoadersCode += `import { loader as ${key} } from "${(0, _utils.slash)(loaderInfo.filePath)}${getDataLoaderPath(key)}";
|
|
340
300
|
`;
|
|
341
301
|
} else {
|
|
342
|
-
importLoadersCode += `import ${key} from "${(0,
|
|
343
|
-
loaderInfo.filePath
|
|
344
|
-
)}${getDataLoaderPath(key)}";
|
|
302
|
+
importLoadersCode += `import ${key} from "${(0, _utils.slash)(loaderInfo.filePath)}${getDataLoaderPath(key)}";
|
|
345
303
|
`;
|
|
346
304
|
}
|
|
347
305
|
}
|
|
348
306
|
let importConfigsCode = "";
|
|
349
307
|
for (const [key, configPath] of Object.entries(configsMap)) {
|
|
350
|
-
importConfigsCode += `import * as ${key} from "${(0,
|
|
308
|
+
importConfigsCode += `import * as ${key} from "${(0, _utils.slash)(configPath)}";
|
|
351
309
|
`;
|
|
352
310
|
}
|
|
353
|
-
await
|
|
354
|
-
await
|
|
311
|
+
await _utils.fs.ensureFile(loadersMapFile);
|
|
312
|
+
await _utils.fs.writeJSON(loadersMapFile, loadersMap);
|
|
355
313
|
return `
|
|
356
314
|
${importLazyCode}
|
|
357
315
|
${importComponentsCode}
|
|
@@ -366,32 +324,13 @@ const fileSystemRoutes = async ({
|
|
|
366
324
|
function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
|
|
367
325
|
const { entryName } = entrypoint;
|
|
368
326
|
const { packageName, internalDirectory } = appContext;
|
|
369
|
-
const ssr = (0,
|
|
370
|
-
|
|
371
|
-
config.server.ssr,
|
|
372
|
-
config.server.ssrByEntries,
|
|
373
|
-
packageName
|
|
374
|
-
);
|
|
375
|
-
const ssg = (0, import_utils.isSSGEntry)(config, entryName, entrypoints);
|
|
327
|
+
const ssr = (0, _utils.getEntryOptions)(entryName, config.server.ssr, config.server.ssrByEntries, packageName);
|
|
328
|
+
const ssg = (0, _utils.isSSGEntry)(config, entryName, entrypoints);
|
|
376
329
|
if (entrypoint.nestedRoutesEntry && (ssr || ssg)) {
|
|
377
330
|
const serverLoaderRuntime = require.resolve("@modern-js/plugin-data-loader/runtime");
|
|
378
|
-
const serverLoadersFile = (0,
|
|
379
|
-
|
|
380
|
-
entryName
|
|
381
|
-
);
|
|
382
|
-
const combinedModule = `export * from "${(0, import_utils.slash)(
|
|
383
|
-
serverLoaderRuntime
|
|
384
|
-
)}"; export * from "${(0, import_utils.slash)(serverLoadersFile)}"`;
|
|
331
|
+
const serverLoadersFile = (0, _utils1.getServerLoadersFile)(internalDirectory, entryName);
|
|
332
|
+
const combinedModule = `export * from "${(0, _utils.slash)(serverLoaderRuntime)}"; export * from "${(0, _utils.slash)(serverLoadersFile)}"`;
|
|
385
333
|
return combinedModule;
|
|
386
334
|
}
|
|
387
335
|
return null;
|
|
388
336
|
}
|
|
389
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
390
|
-
0 && (module.exports = {
|
|
391
|
-
fileSystemRoutes,
|
|
392
|
-
html,
|
|
393
|
-
index,
|
|
394
|
-
renderFunction,
|
|
395
|
-
routesForServer,
|
|
396
|
-
ssrLoaderCombinedModule
|
|
397
|
-
});
|
|
@@ -1,100 +1,105 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
8
6
|
for (var name in all)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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 utils_exports = {};
|
|
29
|
-
__export(utils_exports, {
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
walkDirectory: () => walkDirectory,
|
|
30
14
|
getDefaultImports: () => getDefaultImports,
|
|
31
|
-
getServerCombinedModueFile: () => getServerCombinedModueFile,
|
|
32
|
-
getServerLoadersFile: () => getServerLoadersFile,
|
|
33
|
-
hasLoader: () => hasLoader,
|
|
34
15
|
isPageComponentFile: () => isPageComponentFile,
|
|
35
|
-
parseModule: () => parseModule,
|
|
36
16
|
replaceWithAlias: () => replaceWithAlias,
|
|
37
|
-
|
|
17
|
+
parseModule: () => parseModule,
|
|
18
|
+
hasLoader: () => hasLoader,
|
|
19
|
+
getServerLoadersFile: () => getServerLoadersFile,
|
|
20
|
+
getServerCombinedModueFile: () => getServerCombinedModueFile
|
|
38
21
|
});
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
22
|
+
const _fs = /* @__PURE__ */ _interop_require_default(require("fs"));
|
|
23
|
+
const _path = /* @__PURE__ */ _interop_require_default(require("path"));
|
|
24
|
+
const _utils = require("@modern-js/utils");
|
|
25
|
+
const _esbuild = require("esbuild");
|
|
26
|
+
const _esmodulelexer = require("es-module-lexer");
|
|
27
|
+
const _constants = require("./constants");
|
|
28
|
+
function _interop_require_default(obj) {
|
|
29
|
+
return obj && obj.__esModule ? obj : {
|
|
30
|
+
default: obj
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const walkDirectory = (dir) => _fs.default.readdirSync(dir).reduce((previous, filename) => {
|
|
34
|
+
const filePath = _path.default.join(dir, filename);
|
|
35
|
+
if (_fs.default.statSync(filePath).isDirectory()) {
|
|
36
|
+
return [
|
|
37
|
+
...previous,
|
|
38
|
+
...walkDirectory(filePath)
|
|
39
|
+
];
|
|
50
40
|
} else {
|
|
51
|
-
return [
|
|
41
|
+
return [
|
|
42
|
+
...previous,
|
|
43
|
+
filePath
|
|
44
|
+
];
|
|
52
45
|
}
|
|
53
46
|
}, []);
|
|
54
|
-
const getDefaultImports = ({
|
|
55
|
-
entrypoint,
|
|
56
|
-
srcDirectory,
|
|
57
|
-
internalSrcAlias,
|
|
58
|
-
internalDirAlias,
|
|
59
|
-
internalDirectory
|
|
60
|
-
}) => {
|
|
47
|
+
const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias, internalDirAlias, internalDirectory }) => {
|
|
61
48
|
const { entryName, fileSystemRoutes, customBootstrap, entry } = entrypoint;
|
|
62
49
|
const imports = [
|
|
63
50
|
{
|
|
64
|
-
specifiers: [
|
|
51
|
+
specifiers: [
|
|
52
|
+
{
|
|
53
|
+
local: "React"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
65
56
|
value: "react"
|
|
66
57
|
},
|
|
67
58
|
{
|
|
68
|
-
specifiers: [
|
|
69
|
-
|
|
59
|
+
specifiers: [
|
|
60
|
+
{
|
|
61
|
+
local: "ReactDOM"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
value: (0, _utils.isReact18)(_path.default.join(internalDirectory, "../../")) ? "react-dom/client" : "react-dom"
|
|
70
65
|
},
|
|
71
66
|
{
|
|
72
|
-
specifiers: [
|
|
67
|
+
specifiers: [
|
|
68
|
+
{
|
|
69
|
+
imported: "createApp"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
imported: "bootstrap"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
73
75
|
value: "@modern-js/runtime"
|
|
74
76
|
},
|
|
75
77
|
customBootstrap && {
|
|
76
|
-
specifiers: [
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
specifiers: [
|
|
79
|
+
{
|
|
80
|
+
local: "customBootstrap"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
value: (0, _utils.normalizeToPosixPath)(customBootstrap.replace(srcDirectory, internalSrcAlias))
|
|
80
84
|
}
|
|
81
85
|
].filter(Boolean);
|
|
82
86
|
if (fileSystemRoutes) {
|
|
83
87
|
const route = {
|
|
84
|
-
specifiers: [
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
)
|
|
88
|
+
specifiers: [
|
|
89
|
+
{
|
|
90
|
+
imported: "routes"
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
value: (0, _utils.normalizeToPosixPath)(`${internalDirAlias}/${entryName}/${_constants.FILE_SYSTEM_ROUTES_FILE_NAME.replace(".js", "")}`)
|
|
91
94
|
};
|
|
92
95
|
if (fileSystemRoutes.globalApp) {
|
|
93
96
|
imports.push({
|
|
94
|
-
specifiers: [
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
specifiers: [
|
|
98
|
+
{
|
|
99
|
+
local: "App"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
value: (0, _utils.normalizeToPosixPath)(fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias))
|
|
98
103
|
});
|
|
99
104
|
} else {
|
|
100
105
|
route.initialize = "const App = false;";
|
|
@@ -102,10 +107,12 @@ const getDefaultImports = ({
|
|
|
102
107
|
imports.push(route);
|
|
103
108
|
} else {
|
|
104
109
|
imports.push({
|
|
105
|
-
specifiers: [
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
110
|
+
specifiers: [
|
|
111
|
+
{
|
|
112
|
+
local: "App"
|
|
113
|
+
}
|
|
114
|
+
],
|
|
115
|
+
value: (0, _utils.normalizeToPosixPath)(entry.replace(srcDirectory, internalSrcAlias))
|
|
109
116
|
});
|
|
110
117
|
}
|
|
111
118
|
return imports;
|
|
@@ -114,56 +121,45 @@ const isPageComponentFile = (filePath) => {
|
|
|
114
121
|
if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
|
|
115
122
|
return false;
|
|
116
123
|
}
|
|
117
|
-
if ([
|
|
124
|
+
if ([
|
|
125
|
+
".js",
|
|
126
|
+
".jsx",
|
|
127
|
+
".ts",
|
|
128
|
+
".tsx"
|
|
129
|
+
].includes(_path.default.extname(filePath))) {
|
|
118
130
|
return true;
|
|
119
131
|
}
|
|
120
132
|
return false;
|
|
121
133
|
};
|
|
122
134
|
const replaceWithAlias = (base, filePath, alias) => {
|
|
123
135
|
if (filePath.includes(base)) {
|
|
124
|
-
return (0,
|
|
125
|
-
import_path.default.join(alias, import_path.default.relative(base, filePath))
|
|
126
|
-
);
|
|
136
|
+
return (0, _utils.normalizeToPosixPath)(_path.default.join(alias, _path.default.relative(base, filePath)));
|
|
127
137
|
} else {
|
|
128
138
|
return filePath;
|
|
129
139
|
}
|
|
130
140
|
};
|
|
131
|
-
const parseModule = async ({
|
|
132
|
-
source,
|
|
133
|
-
filename
|
|
134
|
-
}) => {
|
|
141
|
+
const parseModule = async ({ source, filename }) => {
|
|
135
142
|
let content = source;
|
|
136
|
-
if (
|
|
137
|
-
const result = await (0,
|
|
138
|
-
loader:
|
|
143
|
+
if (_constants.JS_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
|
|
144
|
+
const result = await (0, _esbuild.transform)(content, {
|
|
145
|
+
loader: _path.default.extname(filename).slice(1),
|
|
139
146
|
format: "esm"
|
|
140
147
|
});
|
|
141
148
|
content = result.code;
|
|
142
149
|
}
|
|
143
|
-
return await (0,
|
|
150
|
+
return await (0, _esmodulelexer.parse)(content);
|
|
144
151
|
};
|
|
145
152
|
const hasLoader = async (filename) => {
|
|
146
|
-
const source = await
|
|
153
|
+
const source = await _utils.fs.readFile(filename);
|
|
147
154
|
const [, moduleExports] = await parseModule({
|
|
148
155
|
source: source.toString(),
|
|
149
156
|
filename
|
|
150
157
|
});
|
|
151
|
-
return moduleExports.some((e) => e.n ===
|
|
158
|
+
return moduleExports.some((e) => e.n === _constants.LOADER_EXPORT_NAME);
|
|
152
159
|
};
|
|
153
160
|
const getServerLoadersFile = (internalDirectory, entryName) => {
|
|
154
|
-
return
|
|
161
|
+
return _path.default.join(internalDirectory, entryName, "route-server-loaders.js");
|
|
155
162
|
};
|
|
156
163
|
const getServerCombinedModueFile = (internalDirectory, entryName) => {
|
|
157
|
-
return
|
|
164
|
+
return _path.default.join(internalDirectory, entryName, "server-loader-combined.js");
|
|
158
165
|
};
|
|
159
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
160
|
-
0 && (module.exports = {
|
|
161
|
-
getDefaultImports,
|
|
162
|
-
getServerCombinedModueFile,
|
|
163
|
-
getServerLoadersFile,
|
|
164
|
-
hasLoader,
|
|
165
|
-
isPageComponentFile,
|
|
166
|
-
parseModule,
|
|
167
|
-
replaceWithAlias,
|
|
168
|
-
walkDirectory
|
|
169
|
-
});
|