@modern-js/app-tools 2.0.0-beta.3 → 2.0.0-beta.6
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 +619 -0
- package/bin/modern.js +3 -0
- package/dist/js/modern/analyze/Builder.js +39 -0
- package/dist/js/modern/analyze/constants.js +48 -18
- package/dist/js/modern/analyze/generateCode.js +264 -225
- package/dist/js/modern/analyze/getBundleEntry.js +34 -32
- package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +99 -52
- package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
- package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
- package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
- package/dist/js/modern/analyze/getFileSystemEntry.js +52 -23
- package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
- package/dist/js/modern/analyze/getServerRoutes.js +122 -126
- package/dist/js/modern/analyze/index.js +204 -161
- package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
- package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
- package/dist/js/modern/analyze/nestedRoutes.js +118 -65
- package/dist/js/modern/analyze/templates.js +170 -81
- package/dist/js/modern/analyze/utils.js +104 -67
- package/dist/js/modern/builder/builderPlugins/compatModern.js +128 -109
- package/dist/js/modern/builder/index.js +120 -89
- package/dist/js/modern/builder/loaders/routerLoader.js +9 -12
- package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -1
- package/dist/js/modern/builder/share.js +23 -21
- package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
- package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
- package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +100 -84
- package/dist/js/modern/commands/build.js +67 -42
- package/dist/js/modern/commands/deploy.js +27 -4
- package/dist/js/modern/commands/dev.js +81 -34
- package/dist/js/modern/commands/index.js +1 -1
- package/dist/js/modern/commands/inspect.js +30 -5
- package/dist/js/modern/commands/serve.js +54 -0
- package/dist/js/modern/config/default.js +112 -145
- package/dist/js/modern/config/index.js +8 -2
- package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
- package/dist/js/modern/config/initial/createOutputConfig.js +10 -13
- package/dist/js/modern/config/initial/createSourceConfig.js +10 -3
- package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
- package/dist/js/modern/config/initial/index.js +9 -4
- package/dist/js/modern/config/initial/inits.js +109 -73
- package/dist/js/modern/config/initial/transformNormalizedConfig.js +11 -4
- package/dist/js/modern/defineConfig.js +26 -11
- package/dist/js/modern/exports/server.js +4 -1
- package/dist/js/modern/hooks.js +16 -4
- package/dist/js/modern/index.js +178 -90
- package/dist/js/modern/initialize/index.js +100 -52
- package/dist/js/modern/locale/en.js +20 -21
- package/dist/js/modern/locale/index.js +6 -6
- package/dist/js/modern/locale/zh.js +21 -22
- package/dist/js/modern/schema/Schema.js +6 -5
- package/dist/js/modern/schema/index.js +53 -100
- package/dist/js/modern/schema/legacy.js +96 -231
- package/dist/js/modern/types/config/index.js +0 -1
- package/dist/js/modern/types/index.js +0 -1
- package/dist/js/modern/types/legacyConfig/output.js +0 -1
- package/dist/js/modern/utils/commands.js +10 -2
- package/dist/js/modern/utils/config.js +102 -41
- package/dist/js/modern/utils/createFileWatcher.js +84 -51
- package/dist/js/modern/utils/createServer.js +63 -17
- package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
- package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
- package/dist/js/modern/utils/language.js +6 -3
- package/dist/js/modern/utils/printInstructions.js +27 -8
- package/dist/js/modern/utils/restart.js +43 -16
- package/dist/js/modern/utils/routes.js +29 -12
- package/dist/js/node/analyze/Builder.js +64 -0
- package/dist/js/node/analyze/constants.js +86 -39
- package/dist/js/node/analyze/generateCode.js +285 -239
- package/dist/js/node/analyze/getBundleEntry.js +62 -44
- package/dist/js/node/analyze/getClientRoutes/getRoutes.js +138 -77
- package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +130 -74
- package/dist/js/node/analyze/getClientRoutes/index.js +27 -16
- package/dist/js/node/analyze/getClientRoutes/utils.js +51 -21
- package/dist/js/node/analyze/getFileSystemEntry.js +82 -39
- package/dist/js/node/analyze/getHtmlTemplate.js +120 -61
- package/dist/js/node/analyze/getServerRoutes.js +145 -137
- package/dist/js/node/analyze/index.js +233 -174
- package/dist/js/node/analyze/isDefaultExportFunction.js +59 -26
- package/dist/js/node/analyze/makeLegalIdentifier.js +31 -15
- package/dist/js/node/analyze/nestedRoutes.js +150 -79
- package/dist/js/node/analyze/templates.js +198 -90
- package/dist/js/node/analyze/utils.js +136 -81
- package/dist/js/node/builder/builderPlugins/compatModern.js +158 -122
- package/dist/js/node/builder/index.js +142 -98
- package/dist/js/node/builder/loaders/routerLoader.js +29 -18
- package/dist/js/node/builder/loaders/serverModuleLoader.js +24 -7
- package/dist/js/node/builder/share.js +50 -26
- package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +43 -26
- package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +51 -31
- package/dist/js/node/builder/webpackPlugins/routerPlugin.js +120 -90
- package/dist/js/node/commands/build.js +91 -52
- package/dist/js/node/commands/deploy.js +49 -10
- package/dist/js/node/commands/dev.js +105 -48
- package/dist/js/node/commands/index.js +19 -38
- package/dist/js/node/commands/inspect.js +52 -11
- package/dist/js/node/commands/serve.js +83 -0
- package/dist/js/node/config/default.js +131 -149
- package/dist/js/node/config/index.js +31 -28
- package/dist/js/node/config/initial/createHtmlConfig.js +26 -6
- package/dist/js/node/config/initial/createOutputConfig.js +31 -17
- package/dist/js/node/config/initial/createSourceConfig.js +31 -7
- package/dist/js/node/config/initial/createToolsConfig.js +28 -10
- package/dist/js/node/config/initial/index.js +34 -17
- package/dist/js/node/config/initial/inits.js +130 -81
- package/dist/js/node/config/initial/transformNormalizedConfig.js +40 -16
- package/dist/js/node/defineConfig.js +46 -17
- package/dist/js/node/exports/server.js +25 -10
- package/dist/js/node/hooks.js +53 -29
- package/dist/js/node/index.js +213 -129
- package/dist/js/node/initialize/index.js +117 -61
- package/dist/js/node/locale/en.js +40 -25
- package/dist/js/node/locale/index.js +31 -14
- package/dist/js/node/locale/zh.js +41 -26
- package/dist/js/node/schema/Schema.js +27 -10
- package/dist/js/node/schema/index.js +84 -114
- package/dist/js/node/schema/legacy.js +119 -240
- package/dist/js/node/types/config/deploy.js +15 -0
- package/dist/js/node/types/config/dev.js +15 -0
- package/dist/js/node/types/config/experiments.js +15 -0
- package/dist/js/node/types/config/html.js +15 -0
- package/dist/js/node/types/config/index.js +17 -16
- package/dist/js/node/types/config/output.js +15 -0
- package/dist/js/node/types/config/performance.js +15 -0
- package/dist/js/node/types/config/security.js +15 -0
- package/dist/js/node/types/config/source.js +15 -0
- package/dist/js/node/types/config/tools.js +15 -0
- package/dist/js/node/types/hooks.js +15 -0
- package/dist/js/node/types/index.js +19 -38
- package/dist/js/node/types/legacyConfig/deploy.js +15 -0
- package/dist/js/node/types/legacyConfig/dev.js +15 -0
- package/dist/js/node/types/legacyConfig/index.js +15 -0
- package/dist/js/node/types/legacyConfig/output.js +15 -5
- package/dist/js/node/types/legacyConfig/source.js +15 -0
- package/dist/js/node/types/legacyConfig/tools.js +15 -0
- package/dist/js/node/utils/commands.js +31 -6
- package/dist/js/node/utils/config.js +125 -51
- package/dist/js/node/utils/createFileWatcher.js +109 -61
- package/dist/js/node/utils/createServer.js +92 -25
- package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
- package/dist/js/node/utils/getSpecifiedEntries.js +68 -25
- package/dist/js/node/utils/language.js +28 -8
- package/dist/js/node/utils/printInstructions.js +51 -16
- package/dist/js/node/utils/restart.js +65 -21
- package/dist/js/node/utils/routes.js +58 -19
- package/dist/js/node/utils/types.js +15 -0
- package/dist/js/treeshaking/analyze/Builder.js +199 -0
- package/dist/js/treeshaking/analyze/constants.js +37 -18
- package/dist/js/treeshaking/analyze/generateCode.js +597 -407
- package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +217 -168
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
- package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
- package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
- package/dist/js/treeshaking/analyze/getFileSystemEntry.js +97 -86
- package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
- package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
- package/dist/js/treeshaking/analyze/index.js +575 -305
- package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
- package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
- package/dist/js/treeshaking/analyze/nestedRoutes.js +419 -201
- package/dist/js/treeshaking/analyze/templates.js +438 -236
- package/dist/js/treeshaking/analyze/utils.js +367 -153
- package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +285 -199
- package/dist/js/treeshaking/builder/index.js +365 -165
- package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
- package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
- package/dist/js/treeshaking/builder/share.js +38 -44
- package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
- package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
- package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +334 -112
- package/dist/js/treeshaking/commands/build.js +286 -88
- package/dist/js/treeshaking/commands/deploy.js +153 -25
- package/dist/js/treeshaking/commands/dev.js +313 -131
- package/dist/js/treeshaking/commands/index.js +1 -1
- package/dist/js/treeshaking/commands/inspect.js +147 -32
- package/dist/js/treeshaking/commands/serve.js +199 -0
- package/dist/js/treeshaking/config/default.js +207 -198
- package/dist/js/treeshaking/config/index.js +3 -2
- package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
- package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -70
- package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -40
- package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
- package/dist/js/treeshaking/config/initial/index.js +10 -9
- package/dist/js/treeshaking/config/initial/inits.js +205 -106
- package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +31 -34
- package/dist/js/treeshaking/defineConfig.js +60 -13
- package/dist/js/treeshaking/exports/server.js +2 -1
- package/dist/js/treeshaking/hooks.js +31 -25
- package/dist/js/treeshaking/index.js +681 -256
- package/dist/js/treeshaking/initialize/index.js +292 -113
- package/dist/js/treeshaking/locale/en.js +34 -33
- package/dist/js/treeshaking/locale/index.js +5 -5
- package/dist/js/treeshaking/locale/zh.js +34 -33
- package/dist/js/treeshaking/schema/Schema.js +267 -69
- package/dist/js/treeshaking/schema/index.js +171 -121
- package/dist/js/treeshaking/schema/legacy.js +323 -256
- package/dist/js/treeshaking/types/config/deploy.js +1 -0
- package/dist/js/treeshaking/types/config/dev.js +1 -0
- package/dist/js/treeshaking/types/config/experiments.js +1 -0
- package/dist/js/treeshaking/types/config/html.js +1 -0
- package/dist/js/treeshaking/types/config/index.js +0 -1
- package/dist/js/treeshaking/types/config/output.js +1 -0
- package/dist/js/treeshaking/types/config/performance.js +1 -0
- package/dist/js/treeshaking/types/config/security.js +1 -0
- package/dist/js/treeshaking/types/config/source.js +1 -0
- package/dist/js/treeshaking/types/config/tools.js +1 -0
- package/dist/js/treeshaking/types/hooks.js +1 -0
- package/dist/js/treeshaking/types/index.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
- package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
- package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
- package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
- package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
- package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
- package/dist/js/treeshaking/utils/commands.js +10 -5
- package/dist/js/treeshaking/utils/config.js +295 -117
- package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
- package/dist/js/treeshaking/utils/createServer.js +252 -67
- package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
- package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
- package/dist/js/treeshaking/utils/language.js +6 -5
- package/dist/js/treeshaking/utils/printInstructions.js +151 -29
- package/dist/js/treeshaking/utils/restart.js +184 -42
- package/dist/js/treeshaking/utils/routes.js +151 -27
- package/dist/js/treeshaking/utils/types.js +1 -0
- package/dist/types/analyze/Builder.d.ts +8 -0
- package/dist/types/analyze/constants.d.ts +10 -1
- package/dist/types/analyze/index.d.ts +2 -0
- package/dist/types/analyze/templates.d.ts +3 -1
- package/dist/types/analyze/utils.d.ts +2 -1
- package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
- package/dist/types/builder/index.d.ts +3 -3
- package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
- package/dist/types/commands/index.d.ts +1 -1
- package/dist/types/commands/{start.d.ts → serve.d.ts} +0 -0
- package/dist/types/defineConfig.d.ts +1 -0
- package/dist/types/index.d.ts +7 -1
- package/dist/types/initialize/index.d.ts +2 -0
- package/dist/types/locale/en.d.ts +1 -1
- package/dist/types/locale/index.d.ts +2 -2
- package/dist/types/locale/zh.d.ts +1 -1
- package/dist/types/types/config/dev.d.ts +2 -2
- package/dist/types/types/config/index.d.ts +4 -0
- package/dist/types/types/config/output.d.ts +0 -1
- package/dist/types/types/config/source.d.ts +2 -0
- package/dist/types/types/config/tools.d.ts +2 -0
- package/dist/types/types/hooks.d.ts +8 -0
- package/dist/types/types/legacyConfig/dev.d.ts +1 -0
- package/dist/types/types/legacyConfig/output.d.ts +1 -1
- package/dist/types/types/legacyConfig/source.d.ts +1 -0
- package/dist/types/types/legacyConfig/tools.d.ts +1 -0
- package/dist/types/utils/commands.d.ts +2 -1
- package/dist/types/utils/config.d.ts +1 -0
- package/dist/types/utils/createServer.d.ts +1 -0
- package/dist/types/utils/getServerInternalPlugins.d.ts +2 -0
- package/dist/types/utils/restart.d.ts +1 -1
- package/package.json +26 -22
- package/dist/js/modern/commands/start.js +0 -30
- package/dist/js/node/commands/start.js +0 -38
- package/dist/js/treeshaking/commands/start.js +0 -69
|
@@ -1,76 +1,94 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var getBundleEntry_exports = {};
|
|
25
|
+
__export(getBundleEntry_exports, {
|
|
26
|
+
getBundleEntry: () => getBundleEntry
|
|
5
27
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return (0, _utils.findExists)(_constants.JS_EXTENSIONS.map(ext => `${file}${ext}`)) || file;
|
|
28
|
+
module.exports = __toCommonJS(getBundleEntry_exports);
|
|
29
|
+
var import_path = __toESM(require("path"));
|
|
30
|
+
var import_utils = require("@modern-js/utils");
|
|
31
|
+
var import_getFileSystemEntry = require("./getFileSystemEntry");
|
|
32
|
+
var import_constants = require("./constants");
|
|
33
|
+
const ensureExtensions = (file) => {
|
|
34
|
+
if (!import_path.default.extname(file)) {
|
|
35
|
+
return (0, import_utils.findExists)(import_constants.JS_EXTENSIONS.map((ext) => `${file}${ext}`)) || file;
|
|
15
36
|
}
|
|
16
37
|
return file;
|
|
17
38
|
};
|
|
18
|
-
const ifAlreadyExists = (entrypoints, checked) => entrypoints.some(entrypoint => {
|
|
39
|
+
const ifAlreadyExists = (entrypoints, checked) => entrypoints.some((entrypoint) => {
|
|
19
40
|
if (ensureExtensions(entrypoint.entry) === ensureExtensions(checked.entry)) {
|
|
20
|
-
// reset entryName
|
|
21
41
|
checked.entryName = entrypoint.entryName;
|
|
22
42
|
return true;
|
|
23
43
|
}
|
|
24
|
-
// filesystem routes entrypoint conflict with normal entrypoint.
|
|
25
44
|
if (entrypoint.entry.startsWith(checked.entry) || checked.entry.startsWith(entrypoint.entry)) {
|
|
26
|
-
throw new Error(
|
|
45
|
+
throw new Error(
|
|
46
|
+
`Entry configuration conflicts
|
|
47
|
+
Your configuration: ${checked.entry}.
|
|
48
|
+
Default entrypoint: ${entrypoint.entry}
|
|
49
|
+
Please reset source.entries or set source.disableDefaultEntries to disable the default entry rules.`
|
|
50
|
+
);
|
|
27
51
|
}
|
|
28
52
|
return false;
|
|
29
53
|
});
|
|
30
54
|
const getBundleEntry = (appContext, config) => {
|
|
55
|
+
const { appDirectory, packageName } = appContext;
|
|
31
56
|
const {
|
|
32
|
-
|
|
33
|
-
packageName
|
|
34
|
-
} = appContext;
|
|
35
|
-
const {
|
|
36
|
-
source: {
|
|
37
|
-
disableDefaultEntries,
|
|
38
|
-
entries,
|
|
39
|
-
entriesDir
|
|
40
|
-
}
|
|
57
|
+
source: { disableDefaultEntries, entries, entriesDir }
|
|
41
58
|
} = config;
|
|
42
|
-
const defaults = disableDefaultEntries ? [] : (0,
|
|
43
|
-
|
|
44
|
-
// merge entrypoints from user config with directory convention.
|
|
59
|
+
const defaults = disableDefaultEntries ? [] : (0, import_getFileSystemEntry.getFileSystemEntry)(appContext, config);
|
|
45
60
|
if (entries) {
|
|
46
|
-
Object.keys(entries).forEach(name => {
|
|
61
|
+
Object.keys(entries).forEach((name) => {
|
|
47
62
|
const value = entries[name];
|
|
48
|
-
const entrypoint = typeof value ===
|
|
63
|
+
const entrypoint = typeof value === "string" ? {
|
|
49
64
|
entryName: name,
|
|
50
|
-
entry: (0,
|
|
65
|
+
entry: (0, import_utils.ensureAbsolutePath)(appDirectory, value),
|
|
51
66
|
isAutoMount: true,
|
|
52
|
-
fileSystemRoutes:
|
|
67
|
+
fileSystemRoutes: import_utils.fs.statSync((0, import_utils.ensureAbsolutePath)(appDirectory, value)).isDirectory() ? {} : void 0
|
|
53
68
|
} : {
|
|
54
69
|
entryName: name,
|
|
55
|
-
entry: (0,
|
|
70
|
+
entry: (0, import_utils.ensureAbsolutePath)(appDirectory, value.entry),
|
|
56
71
|
isAutoMount: !value.disableMount,
|
|
57
|
-
fileSystemRoutes: value.enableFileSystemRoutes ? {} :
|
|
72
|
+
fileSystemRoutes: value.enableFileSystemRoutes ? {} : void 0
|
|
58
73
|
};
|
|
74
|
+
if (entrypoint.fileSystemRoutes) {
|
|
75
|
+
entrypoint.nestedRoutesEntry = entrypoint.entry;
|
|
76
|
+
}
|
|
59
77
|
if (!ifAlreadyExists(defaults, entrypoint)) {
|
|
60
78
|
defaults.push(entrypoint);
|
|
61
79
|
}
|
|
62
80
|
});
|
|
63
81
|
}
|
|
64
82
|
if (!disableDefaultEntries) {
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
nestedRoutesEntry: _nestedRoutesEntry = ''
|
|
71
|
-
}) => entryName === packageName || _path.default.dirname(entry) === entriesDirAbs || _path.default.dirname(_nestedRoutesEntry) === entriesDirAbs);
|
|
72
|
-
found && (found.entryName = _utils.MAIN_ENTRY_NAME);
|
|
83
|
+
const entriesDirAbs = (0, import_utils.ensureAbsolutePath)(appDirectory, entriesDir || "");
|
|
84
|
+
const found = defaults.find(
|
|
85
|
+
({ entryName, entry, nestedRoutesEntry = "" }) => entryName === packageName || import_path.default.dirname(entry) === entriesDirAbs || import_path.default.dirname(nestedRoutesEntry) === entriesDirAbs
|
|
86
|
+
);
|
|
87
|
+
found && (found.entryName = import_utils.MAIN_ENTRY_NAME);
|
|
73
88
|
}
|
|
74
89
|
return defaults;
|
|
75
90
|
};
|
|
76
|
-
|
|
91
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
92
|
+
0 && (module.exports = {
|
|
93
|
+
getBundleEntry
|
|
94
|
+
});
|
|
@@ -1,55 +1,90 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __export = (target, all) => {
|
|
25
|
+
for (var name in all)
|
|
26
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
27
|
+
};
|
|
28
|
+
var __copyProps = (to, from, except, desc) => {
|
|
29
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
30
|
+
for (let key of __getOwnPropNames(from))
|
|
31
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
32
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
33
|
+
}
|
|
34
|
+
return to;
|
|
35
|
+
};
|
|
36
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
37
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
38
|
+
mod
|
|
39
|
+
));
|
|
40
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
41
|
+
var getRoutes_exports = {};
|
|
42
|
+
__export(getRoutes_exports, {
|
|
43
|
+
getClientRoutes: () => getClientRoutes
|
|
5
44
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
45
|
+
module.exports = __toCommonJS(getRoutes_exports);
|
|
46
|
+
var import_path = __toESM(require("path"));
|
|
47
|
+
var import_utils = require("@modern-js/utils");
|
|
48
|
+
var import_makeLegalIdentifier = require("../makeLegalIdentifier");
|
|
49
|
+
var import_constants = require("../constants");
|
|
50
|
+
var import_utils2 = require("../utils");
|
|
51
|
+
var import_utils3 = require("./utils");
|
|
17
52
|
const compName = (srcDirectory, filePath) => {
|
|
18
|
-
const legalCompName = (0,
|
|
53
|
+
const legalCompName = (0, import_makeLegalIdentifier.makeLegalIdentifier)(
|
|
54
|
+
import_path.default.relative(srcDirectory, filePath)
|
|
55
|
+
);
|
|
19
56
|
return `Comp_${legalCompName}`;
|
|
20
57
|
};
|
|
21
|
-
const layoutNameAbbr = filePath => {
|
|
22
|
-
const prefix =
|
|
23
|
-
const dirName =
|
|
24
|
-
return `${prefix}${(0,
|
|
58
|
+
const layoutNameAbbr = (filePath) => {
|
|
59
|
+
const prefix = "L_";
|
|
60
|
+
const dirName = import_path.default.dirname(filePath).split("/").pop() || "";
|
|
61
|
+
return `${prefix}${(0, import_makeLegalIdentifier.makeLegalIdentifier)(dirName)}`;
|
|
25
62
|
};
|
|
26
63
|
const parents = [];
|
|
27
|
-
|
|
28
|
-
/* eslint-disable no-param-reassign */
|
|
29
64
|
const recursiveReadDir = ({
|
|
30
65
|
dir,
|
|
31
66
|
routes,
|
|
32
|
-
basePath
|
|
67
|
+
basePath = "/",
|
|
33
68
|
srcDirectory,
|
|
34
69
|
srcAlias
|
|
35
70
|
}) => {
|
|
36
71
|
let hasDynamicRoute = false;
|
|
37
72
|
let resetParent = false;
|
|
38
73
|
let parent = parents[parents.length - 1];
|
|
39
|
-
const layout = (0,
|
|
74
|
+
const layout = (0, import_utils3.findLayout)(dir);
|
|
40
75
|
if (layout) {
|
|
41
|
-
if (
|
|
76
|
+
if (basePath === "/") {
|
|
42
77
|
throw new Error(`should use _app instead of _layout in ${dir}`);
|
|
43
78
|
} else {
|
|
44
|
-
const alias = (0,
|
|
79
|
+
const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, layout, srcAlias);
|
|
45
80
|
const componentName = compName(srcDirectory, layout);
|
|
46
81
|
const route = {
|
|
47
|
-
path: `${
|
|
82
|
+
path: `${basePath.substring(0, basePath.length - 1)}`,
|
|
48
83
|
children: [],
|
|
49
84
|
_component: alias,
|
|
50
85
|
component: componentName,
|
|
51
86
|
parent,
|
|
52
|
-
type:
|
|
87
|
+
type: "page"
|
|
53
88
|
};
|
|
54
89
|
parent = route;
|
|
55
90
|
resetParent = true;
|
|
@@ -58,28 +93,30 @@ const recursiveReadDir = ({
|
|
|
58
93
|
routes = route.children;
|
|
59
94
|
}
|
|
60
95
|
}
|
|
61
|
-
for (const relative of
|
|
62
|
-
const filePath =
|
|
63
|
-
if (!(0,
|
|
64
|
-
const filename =
|
|
65
|
-
const alias = (0,
|
|
96
|
+
for (const relative of import_utils.fs.readdirSync(dir)) {
|
|
97
|
+
const filePath = import_path.default.join(dir, relative);
|
|
98
|
+
if (!(0, import_utils3.shouldSkip)(filePath)) {
|
|
99
|
+
const filename = import_path.default.basename(filePath, import_path.default.extname(filePath));
|
|
100
|
+
const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, filePath, srcAlias);
|
|
66
101
|
const componentName = compName(srcDirectory, filePath);
|
|
67
|
-
const dynamicRouteMatched =
|
|
102
|
+
const dynamicRouteMatched = import_constants.FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
|
|
68
103
|
if (dynamicRouteMatched) {
|
|
69
104
|
if (hasDynamicRoute) {
|
|
70
|
-
throw new Error(
|
|
105
|
+
throw new Error(
|
|
106
|
+
`Can't set two dynamic route in one directory: ${dir}`
|
|
107
|
+
);
|
|
71
108
|
} else {
|
|
72
109
|
hasDynamicRoute = true;
|
|
73
110
|
}
|
|
74
111
|
}
|
|
75
112
|
const route = {
|
|
76
|
-
path: `${
|
|
113
|
+
path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
|
|
77
114
|
_component: alias,
|
|
78
115
|
component: componentName,
|
|
79
116
|
parent,
|
|
80
|
-
type:
|
|
117
|
+
type: "page"
|
|
81
118
|
};
|
|
82
|
-
if (
|
|
119
|
+
if (import_utils.fs.statSync(filePath).isDirectory()) {
|
|
83
120
|
recursiveReadDir({
|
|
84
121
|
dir: filePath,
|
|
85
122
|
routes,
|
|
@@ -89,14 +126,14 @@ const recursiveReadDir = ({
|
|
|
89
126
|
});
|
|
90
127
|
continue;
|
|
91
128
|
}
|
|
92
|
-
if (filename ===
|
|
129
|
+
if (filename === import_constants.FILE_SYSTEM_ROUTES_LAYOUT) {
|
|
93
130
|
continue;
|
|
94
131
|
}
|
|
95
|
-
if (filename ===
|
|
96
|
-
route.path =
|
|
132
|
+
if (filename === import_constants.FILE_SYSTEM_ROUTES_INDEX) {
|
|
133
|
+
route.path = basePath === "/" ? basePath : `${basePath.substring(0, basePath.length - 1)}`;
|
|
97
134
|
}
|
|
98
|
-
if (filename ===
|
|
99
|
-
route.path =
|
|
135
|
+
if (filename === "404" && basePath === "/") {
|
|
136
|
+
route.path = "*";
|
|
100
137
|
}
|
|
101
138
|
routes.push(route);
|
|
102
139
|
}
|
|
@@ -105,36 +142,47 @@ const recursiveReadDir = ({
|
|
|
105
142
|
parents.pop();
|
|
106
143
|
}
|
|
107
144
|
};
|
|
108
|
-
/* eslint-enable no-param-reassign */
|
|
109
|
-
|
|
110
145
|
const normalizeNestedRoutes = (nested, internalComponentsDir, internalDirectory, internalDirAlias) => {
|
|
111
|
-
const flat = routes => routes.reduce(
|
|
112
|
-
|
|
146
|
+
const flat = (routes) => routes.reduce(
|
|
147
|
+
(memo, route) => memo.concat(
|
|
148
|
+
Array.isArray(route.children) ? flat(route.children) : [route]
|
|
149
|
+
),
|
|
150
|
+
[]
|
|
151
|
+
);
|
|
152
|
+
const generate = (route) => {
|
|
113
153
|
const codes = [];
|
|
114
154
|
let lastComponent = route.component;
|
|
115
|
-
const imports = [
|
|
116
|
-
|
|
117
|
-
|
|
155
|
+
const imports = [
|
|
156
|
+
`import React from 'react';`,
|
|
157
|
+
`import ${lastComponent} from '${route._component}'`
|
|
158
|
+
];
|
|
118
159
|
while (route = route.parent) {
|
|
119
160
|
const layoutComponent = route.component;
|
|
120
161
|
const layoutComponentAbbr = layoutNameAbbr(route._component);
|
|
121
162
|
imports.push(`import ${layoutComponent} from '${route._component}';`);
|
|
122
163
|
const currentComponent = `${layoutComponentAbbr}_${lastComponent}`;
|
|
123
|
-
codes.push(
|
|
164
|
+
codes.push(
|
|
165
|
+
`const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`
|
|
166
|
+
);
|
|
124
167
|
lastComponent = currentComponent;
|
|
125
168
|
}
|
|
126
|
-
const file =
|
|
127
|
-
|
|
169
|
+
const file = import_path.default.resolve(internalComponentsDir, `${lastComponent}.jsx`);
|
|
170
|
+
import_utils.fs.outputFileSync(
|
|
171
|
+
file,
|
|
172
|
+
`${imports.join("\n")}
|
|
173
|
+
${codes.join(
|
|
174
|
+
"\n"
|
|
175
|
+
)}
|
|
176
|
+
export default ${lastComponent}`
|
|
177
|
+
);
|
|
128
178
|
return {
|
|
129
179
|
component: lastComponent,
|
|
130
|
-
_component: (0,
|
|
180
|
+
_component: (0, import_utils2.replaceWithAlias)(internalDirectory, file, internalDirAlias)
|
|
131
181
|
};
|
|
132
182
|
};
|
|
133
|
-
const normalized = flat(nested).map(
|
|
134
|
-
parent:
|
|
135
|
-
|
|
136
|
-
parent: undefined
|
|
137
|
-
}));
|
|
183
|
+
const normalized = flat(nested).map(
|
|
184
|
+
(route) => route.parent ? __spreadProps(__spreadValues(__spreadValues({}, route), generate(route)), { parent: void 0 }) : __spreadProps(__spreadValues({}, route), { parent: void 0 })
|
|
185
|
+
);
|
|
138
186
|
return normalized;
|
|
139
187
|
};
|
|
140
188
|
const getClientRoutes = ({
|
|
@@ -144,38 +192,51 @@ const getClientRoutes = ({
|
|
|
144
192
|
internalDirectory,
|
|
145
193
|
internalDirAlias
|
|
146
194
|
}) => {
|
|
147
|
-
const {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
if (!
|
|
152
|
-
throw new Error(
|
|
195
|
+
const { entryName, pageRoutesEntry } = entrypoint;
|
|
196
|
+
if (!pageRoutesEntry) {
|
|
197
|
+
return [];
|
|
198
|
+
}
|
|
199
|
+
if (!import_utils.fs.existsSync(pageRoutesEntry)) {
|
|
200
|
+
throw new Error(
|
|
201
|
+
`generate file system routes error, ${pageRoutesEntry} directory not found.`
|
|
202
|
+
);
|
|
153
203
|
}
|
|
154
|
-
if (!(
|
|
155
|
-
throw new Error(
|
|
204
|
+
if (!(import_utils.fs.existsSync(pageRoutesEntry) && import_utils.fs.statSync(pageRoutesEntry).isDirectory())) {
|
|
205
|
+
throw new Error(
|
|
206
|
+
`generate file system routes error, ${pageRoutesEntry} should be directory.`
|
|
207
|
+
);
|
|
156
208
|
}
|
|
157
209
|
let routes = [];
|
|
158
210
|
recursiveReadDir({
|
|
159
|
-
dir:
|
|
211
|
+
dir: pageRoutesEntry,
|
|
160
212
|
routes,
|
|
161
|
-
basePath:
|
|
213
|
+
basePath: "/",
|
|
162
214
|
srcDirectory,
|
|
163
215
|
srcAlias
|
|
164
216
|
});
|
|
165
|
-
const internalComponentsDir =
|
|
166
|
-
|
|
167
|
-
|
|
217
|
+
const internalComponentsDir = import_path.default.resolve(
|
|
218
|
+
internalDirectory,
|
|
219
|
+
`${entryName}/${import_constants.FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`
|
|
220
|
+
);
|
|
221
|
+
import_utils.fs.emptyDirSync(internalComponentsDir);
|
|
222
|
+
routes = normalizeNestedRoutes(
|
|
223
|
+
routes,
|
|
224
|
+
internalComponentsDir,
|
|
225
|
+
internalDirectory,
|
|
226
|
+
internalDirAlias
|
|
227
|
+
);
|
|
168
228
|
parents.length = 0;
|
|
169
|
-
|
|
170
|
-
// FIXME: support more situations
|
|
171
229
|
routes.sort((a, b) => {
|
|
172
|
-
const delta = (0,
|
|
230
|
+
const delta = (0, import_utils3.getRouteWeight)(a.path) - (0, import_utils3.getRouteWeight)(b.path);
|
|
173
231
|
if (delta === 0) {
|
|
174
232
|
return a.path.length - b.path.length;
|
|
175
233
|
}
|
|
176
234
|
return delta;
|
|
177
235
|
});
|
|
178
|
-
(0,
|
|
236
|
+
(0, import_utils3.debug)(`fileSystem routes: %o`, routes);
|
|
179
237
|
return routes;
|
|
180
238
|
};
|
|
181
|
-
|
|
239
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
240
|
+
0 && (module.exports = {
|
|
241
|
+
getClientRoutes
|
|
242
|
+
});
|