@modern-js/app-tools 2.0.0-beta.3 → 2.0.0-beta.4
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 +305 -0
- package/bin/modern.js +1 -0
- package/dist/js/modern/analyze/Builder.js +39 -0
- package/dist/js/modern/analyze/constants.js +38 -18
- package/dist/js/modern/analyze/generateCode.js +262 -221
- package/dist/js/modern/analyze/getBundleEntry.js +34 -32
- package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +93 -49
- 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 +43 -22
- 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 +201 -160
- 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 +106 -60
- package/dist/js/modern/analyze/templates.js +163 -81
- package/dist/js/modern/analyze/utils.js +87 -66
- package/dist/js/modern/builder/builderPlugins/compatModern.js +122 -109
- package/dist/js/modern/builder/index.js +123 -86
- 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 +77 -27
- package/dist/js/modern/commands/index.js +1 -1
- package/dist/js/modern/commands/inspect.js +30 -5
- package/dist/js/modern/commands/start.js +37 -15
- package/dist/js/modern/config/default.js +103 -113
- 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 +9 -10
- package/dist/js/modern/config/initial/createSourceConfig.js +5 -2
- 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 +6 -3
- package/dist/js/modern/defineConfig.js +26 -11
- package/dist/js/modern/exports/server.js +4 -1
- package/dist/js/modern/hooks.js +15 -4
- package/dist/js/modern/index.js +178 -90
- package/dist/js/modern/initialize/index.js +98 -51
- 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 +51 -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 +5 -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/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 +58 -0
- package/dist/js/node/analyze/constants.js +54 -39
- package/dist/js/node/analyze/generateCode.js +282 -239
- package/dist/js/node/analyze/getBundleEntry.js +58 -44
- package/dist/js/node/analyze/getClientRoutes/getRoutes.js +132 -76
- package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +128 -74
- package/dist/js/node/analyze/getClientRoutes/index.js +23 -17
- package/dist/js/node/analyze/getClientRoutes/utils.js +44 -21
- package/dist/js/node/analyze/getFileSystemEntry.js +70 -39
- package/dist/js/node/analyze/getHtmlTemplate.js +116 -61
- package/dist/js/node/analyze/getServerRoutes.js +143 -137
- package/dist/js/node/analyze/index.js +247 -174
- package/dist/js/node/analyze/isDefaultExportFunction.js +55 -26
- package/dist/js/node/analyze/makeLegalIdentifier.js +27 -15
- package/dist/js/node/analyze/nestedRoutes.js +137 -75
- package/dist/js/node/analyze/templates.js +185 -90
- package/dist/js/node/analyze/utils.js +114 -81
- package/dist/js/node/builder/builderPlugins/compatModern.js +150 -122
- package/dist/js/node/builder/index.js +151 -95
- package/dist/js/node/builder/loaders/routerLoader.js +27 -18
- package/dist/js/node/builder/loaders/serverModuleLoader.js +22 -7
- package/dist/js/node/builder/share.js +46 -26
- package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +39 -26
- package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +47 -31
- package/dist/js/node/builder/webpackPlugins/routerPlugin.js +118 -90
- package/dist/js/node/commands/build.js +89 -52
- package/dist/js/node/commands/deploy.js +45 -10
- package/dist/js/node/commands/dev.js +99 -41
- package/dist/js/node/commands/index.js +19 -38
- package/dist/js/node/commands/inspect.js +48 -11
- package/dist/js/node/commands/start.js +65 -26
- package/dist/js/node/config/default.js +119 -117
- package/dist/js/node/config/index.js +25 -29
- package/dist/js/node/config/initial/createHtmlConfig.js +22 -6
- package/dist/js/node/config/initial/createOutputConfig.js +26 -14
- package/dist/js/node/config/initial/createSourceConfig.js +22 -6
- package/dist/js/node/config/initial/createToolsConfig.js +24 -10
- package/dist/js/node/config/initial/index.js +28 -17
- package/dist/js/node/config/initial/inits.js +126 -81
- package/dist/js/node/config/initial/transformNormalizedConfig.js +31 -15
- package/dist/js/node/defineConfig.js +43 -17
- package/dist/js/node/exports/server.js +21 -10
- package/dist/js/node/hooks.js +48 -29
- package/dist/js/node/index.js +225 -128
- package/dist/js/node/initialize/index.js +116 -61
- package/dist/js/node/locale/en.js +36 -25
- package/dist/js/node/locale/index.js +27 -15
- package/dist/js/node/locale/zh.js +37 -26
- package/dist/js/node/schema/Schema.js +23 -10
- package/dist/js/node/schema/index.js +77 -114
- package/dist/js/node/schema/legacy.js +117 -240
- package/dist/js/node/types/config/index.js +17 -16
- package/dist/js/node/types/index.js +19 -38
- package/dist/js/node/types/legacyConfig/output.js +0 -5
- package/dist/js/node/utils/commands.js +21 -6
- package/dist/js/node/utils/config.js +120 -51
- package/dist/js/node/utils/createFileWatcher.js +104 -61
- package/dist/js/node/utils/createServer.js +86 -25
- package/dist/js/node/utils/getSpecifiedEntries.js +64 -25
- package/dist/js/node/utils/language.js +24 -8
- package/dist/js/node/utils/printInstructions.js +47 -16
- package/dist/js/node/utils/restart.js +61 -21
- package/dist/js/node/utils/routes.js +53 -18
- package/dist/js/treeshaking/analyze/Builder.js +199 -0
- package/dist/js/treeshaking/analyze/constants.js +28 -18
- package/dist/js/treeshaking/analyze/generateCode.js +600 -406
- package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +214 -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 +89 -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 +571 -304
- 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 +411 -200
- package/dist/js/treeshaking/analyze/templates.js +433 -236
- package/dist/js/treeshaking/analyze/utils.js +358 -153
- package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +282 -200
- package/dist/js/treeshaking/builder/index.js +371 -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 +318 -131
- package/dist/js/treeshaking/commands/index.js +1 -1
- package/dist/js/treeshaking/commands/inspect.js +147 -32
- package/dist/js/treeshaking/commands/start.js +190 -67
- package/dist/js/treeshaking/config/default.js +210 -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 +43 -70
- package/dist/js/treeshaking/config/initial/createSourceConfig.js +37 -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 +27 -34
- package/dist/js/treeshaking/defineConfig.js +60 -13
- package/dist/js/treeshaking/exports/server.js +2 -1
- package/dist/js/treeshaking/hooks.js +30 -25
- package/dist/js/treeshaking/index.js +681 -256
- package/dist/js/treeshaking/initialize/index.js +290 -112
- 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 +165 -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 +6 -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/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/index.d.ts +2 -0
- package/dist/types/analyze/templates.d.ts +3 -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/defineConfig.d.ts +1 -0
- package/dist/types/index.d.ts +6 -1
- package/dist/types/initialize/index.d.ts +2 -0
- package/dist/types/types/config/dev.d.ts +2 -2
- package/dist/types/types/config/index.d.ts +1 -0
- package/dist/types/types/config/output.d.ts +0 -1
- package/dist/types/types/config/source.d.ts +1 -0
- package/dist/types/types/config/tools.d.ts +2 -0
- package/dist/types/types/hooks.d.ts +5 -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/config.d.ts +1 -0
- package/dist/types/utils/createServer.d.ts +1 -0
- package/dist/types/utils/restart.d.ts +1 -1
- package/package.json +23 -22
|
@@ -1,50 +1,87 @@
|
|
|
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 stdin_exports = {};
|
|
25
|
+
__export(stdin_exports, {
|
|
26
|
+
getClientRoutes: () => getClientRoutes
|
|
5
27
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
28
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
29
|
+
var import_path = __toESM(require("path"));
|
|
30
|
+
var import_utils = require("@modern-js/utils");
|
|
31
|
+
var import_makeLegalIdentifier = require("../makeLegalIdentifier");
|
|
32
|
+
var import_constants = require("../constants");
|
|
33
|
+
var import_utils2 = require("../utils");
|
|
34
|
+
var import_utils3 = require("./utils");
|
|
35
|
+
var __defProp2 = Object.defineProperty;
|
|
36
|
+
var __defProps = Object.defineProperties;
|
|
37
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
38
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
39
|
+
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
40
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
41
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
42
|
+
var __spreadValues = (a, b) => {
|
|
43
|
+
for (var prop in b || (b = {}))
|
|
44
|
+
if (__hasOwnProp2.call(b, prop))
|
|
45
|
+
__defNormalProp(a, prop, b[prop]);
|
|
46
|
+
if (__getOwnPropSymbols)
|
|
47
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
48
|
+
if (__propIsEnum.call(b, prop))
|
|
49
|
+
__defNormalProp(a, prop, b[prop]);
|
|
50
|
+
}
|
|
51
|
+
return a;
|
|
52
|
+
};
|
|
53
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
17
54
|
const compName = (srcDirectory, filePath) => {
|
|
18
|
-
const legalCompName = (0,
|
|
55
|
+
const legalCompName = (0, import_makeLegalIdentifier.makeLegalIdentifier)(
|
|
56
|
+
import_path.default.relative(srcDirectory, filePath)
|
|
57
|
+
);
|
|
19
58
|
return `Comp_${legalCompName}`;
|
|
20
59
|
};
|
|
21
|
-
const layoutNameAbbr = filePath => {
|
|
22
|
-
const prefix =
|
|
23
|
-
const dirName =
|
|
24
|
-
return `${prefix}${(0,
|
|
60
|
+
const layoutNameAbbr = (filePath) => {
|
|
61
|
+
const prefix = "L_";
|
|
62
|
+
const dirName = import_path.default.dirname(filePath).split("/").pop() || "";
|
|
63
|
+
return `${prefix}${(0, import_makeLegalIdentifier.makeLegalIdentifier)(dirName)}`;
|
|
25
64
|
};
|
|
26
65
|
const parents = [];
|
|
27
|
-
|
|
28
|
-
/* eslint-disable no-param-reassign */
|
|
29
66
|
const recursiveReadDirLegacy = ({
|
|
30
67
|
dir,
|
|
31
68
|
routes,
|
|
32
|
-
basePath
|
|
69
|
+
basePath = "/",
|
|
33
70
|
srcDirectory,
|
|
34
71
|
srcAlias
|
|
35
72
|
}) => {
|
|
36
73
|
let hasDynamicRoute = false;
|
|
37
74
|
let resetParent = false;
|
|
38
75
|
let parent = parents[parents.length - 1];
|
|
39
|
-
const layout = (0,
|
|
76
|
+
const layout = (0, import_utils3.findLayout)(dir);
|
|
40
77
|
if (layout) {
|
|
41
|
-
if (
|
|
78
|
+
if (basePath === "/") {
|
|
42
79
|
throw new Error(`should use _app instead of _layout in ${dir}`);
|
|
43
80
|
} else {
|
|
44
|
-
const alias = (0,
|
|
81
|
+
const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, layout, srcAlias);
|
|
45
82
|
const componentName = compName(srcDirectory, layout);
|
|
46
83
|
const route = {
|
|
47
|
-
path: `${
|
|
84
|
+
path: `${basePath.substring(0, basePath.length - 1)}`,
|
|
48
85
|
exact: false,
|
|
49
86
|
routes: [],
|
|
50
87
|
_component: alias,
|
|
@@ -58,28 +95,30 @@ const recursiveReadDirLegacy = ({
|
|
|
58
95
|
routes = route.routes;
|
|
59
96
|
}
|
|
60
97
|
}
|
|
61
|
-
for (const relative of
|
|
62
|
-
const filePath =
|
|
63
|
-
if (!(0,
|
|
64
|
-
const filename =
|
|
65
|
-
const alias = (0,
|
|
98
|
+
for (const relative of import_utils.fs.readdirSync(dir)) {
|
|
99
|
+
const filePath = import_path.default.join(dir, relative);
|
|
100
|
+
if (!(0, import_utils3.shouldSkip)(filePath)) {
|
|
101
|
+
const filename = import_path.default.basename(filePath, import_path.default.extname(filePath));
|
|
102
|
+
const alias = (0, import_utils2.replaceWithAlias)(srcDirectory, filePath, srcAlias);
|
|
66
103
|
const componentName = compName(srcDirectory, filePath);
|
|
67
|
-
const dynamicRouteMatched =
|
|
104
|
+
const dynamicRouteMatched = import_constants.FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP.exec(filename);
|
|
68
105
|
if (dynamicRouteMatched) {
|
|
69
106
|
if (hasDynamicRoute) {
|
|
70
|
-
throw new Error(
|
|
107
|
+
throw new Error(
|
|
108
|
+
`Can't set two dynamic route in one directory: ${dir}`
|
|
109
|
+
);
|
|
71
110
|
} else {
|
|
72
111
|
hasDynamicRoute = true;
|
|
73
112
|
}
|
|
74
113
|
}
|
|
75
114
|
const route = {
|
|
76
|
-
path: `${
|
|
115
|
+
path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
|
|
77
116
|
_component: alias,
|
|
78
117
|
component: componentName,
|
|
79
118
|
exact: true,
|
|
80
119
|
parent
|
|
81
120
|
};
|
|
82
|
-
if (
|
|
121
|
+
if (import_utils.fs.statSync(filePath).isDirectory()) {
|
|
83
122
|
recursiveReadDirLegacy({
|
|
84
123
|
dir: filePath,
|
|
85
124
|
routes,
|
|
@@ -89,14 +128,14 @@ const recursiveReadDirLegacy = ({
|
|
|
89
128
|
});
|
|
90
129
|
continue;
|
|
91
130
|
}
|
|
92
|
-
if (filename ===
|
|
131
|
+
if (filename === import_constants.FILE_SYSTEM_ROUTES_LAYOUT) {
|
|
93
132
|
continue;
|
|
94
133
|
}
|
|
95
|
-
if (filename ===
|
|
96
|
-
route.path =
|
|
134
|
+
if (filename === import_constants.FILE_SYSTEM_ROUTES_INDEX) {
|
|
135
|
+
route.path = basePath === "/" ? basePath : `${basePath.substring(0, basePath.length - 1)}`;
|
|
97
136
|
}
|
|
98
|
-
if (filename ===
|
|
99
|
-
route.path =
|
|
137
|
+
if (filename === "404" && basePath === "/") {
|
|
138
|
+
route.path = "*";
|
|
100
139
|
route.exact = false;
|
|
101
140
|
}
|
|
102
141
|
routes.push(route);
|
|
@@ -106,36 +145,45 @@ const recursiveReadDirLegacy = ({
|
|
|
106
145
|
parents.pop();
|
|
107
146
|
}
|
|
108
147
|
};
|
|
109
|
-
/* eslint-enable no-param-reassign */
|
|
110
|
-
|
|
111
148
|
const normalizeNestedRoutes = (nested, internalComponentsDir, internalDirectory, internalDirAlias) => {
|
|
112
|
-
const flat = routes => routes.reduce(
|
|
113
|
-
|
|
149
|
+
const flat = (routes) => routes.reduce(
|
|
150
|
+
(memo, route) => memo.concat(Array.isArray(route.routes) ? flat(route.routes) : [route]),
|
|
151
|
+
[]
|
|
152
|
+
);
|
|
153
|
+
const generate = (route) => {
|
|
114
154
|
const codes = [];
|
|
115
155
|
let lastComponent = route.component;
|
|
116
|
-
const imports = [
|
|
117
|
-
|
|
118
|
-
|
|
156
|
+
const imports = [
|
|
157
|
+
`import React from 'react';`,
|
|
158
|
+
`import ${lastComponent} from '${route._component}'`
|
|
159
|
+
];
|
|
119
160
|
while (route = route.parent) {
|
|
120
161
|
const layoutComponent = route.component;
|
|
121
162
|
const layoutComponentAbbr = layoutNameAbbr(route._component);
|
|
122
163
|
imports.push(`import ${layoutComponent} from '${route._component}';`);
|
|
123
164
|
const currentComponent = `${layoutComponentAbbr}_${lastComponent}`;
|
|
124
|
-
codes.push(
|
|
165
|
+
codes.push(
|
|
166
|
+
`const ${currentComponent} = props => <${layoutComponent} Component={${lastComponent}} {...props} />;`
|
|
167
|
+
);
|
|
125
168
|
lastComponent = currentComponent;
|
|
126
169
|
}
|
|
127
|
-
const file =
|
|
128
|
-
|
|
170
|
+
const file = import_path.default.resolve(internalComponentsDir, `${lastComponent}.jsx`);
|
|
171
|
+
import_utils.fs.outputFileSync(
|
|
172
|
+
file,
|
|
173
|
+
`${imports.join("\n")}
|
|
174
|
+
${codes.join(
|
|
175
|
+
"\n"
|
|
176
|
+
)}
|
|
177
|
+
export default ${lastComponent}`
|
|
178
|
+
);
|
|
129
179
|
return {
|
|
130
180
|
component: lastComponent,
|
|
131
|
-
_component: (0,
|
|
181
|
+
_component: (0, import_utils2.replaceWithAlias)(internalDirectory, file, internalDirAlias)
|
|
132
182
|
};
|
|
133
183
|
};
|
|
134
|
-
const normalized = flat(nested).map(
|
|
135
|
-
parent:
|
|
136
|
-
|
|
137
|
-
parent: undefined
|
|
138
|
-
}));
|
|
184
|
+
const normalized = flat(nested).map(
|
|
185
|
+
(route) => route.parent ? __spreadProps(__spreadValues(__spreadValues({}, route), generate(route)), { parent: void 0 }) : __spreadProps(__spreadValues({}, route), { parent: void 0 })
|
|
186
|
+
);
|
|
139
187
|
return normalized;
|
|
140
188
|
};
|
|
141
189
|
const getClientRoutes = ({
|
|
@@ -145,38 +193,44 @@ const getClientRoutes = ({
|
|
|
145
193
|
internalDirectory,
|
|
146
194
|
internalDirAlias
|
|
147
195
|
}) => {
|
|
148
|
-
const {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
throw new Error(`generate file system routes error, ${entry} directory not found.`);
|
|
196
|
+
const { entry, entryName } = entrypoint;
|
|
197
|
+
if (!import_utils.fs.existsSync(entry)) {
|
|
198
|
+
throw new Error(
|
|
199
|
+
`generate file system routes error, ${entry} directory not found.`
|
|
200
|
+
);
|
|
154
201
|
}
|
|
155
|
-
if (!(
|
|
156
|
-
throw new Error(
|
|
202
|
+
if (!(import_utils.fs.existsSync(entry) && import_utils.fs.statSync(entry).isDirectory())) {
|
|
203
|
+
throw new Error(
|
|
204
|
+
`generate file system routes error, ${entry} should be directory.`
|
|
205
|
+
);
|
|
157
206
|
}
|
|
158
207
|
let routes = [];
|
|
159
208
|
recursiveReadDirLegacy({
|
|
160
209
|
dir: entry,
|
|
161
210
|
routes,
|
|
162
|
-
basePath:
|
|
211
|
+
basePath: "/",
|
|
163
212
|
srcDirectory,
|
|
164
213
|
srcAlias
|
|
165
214
|
});
|
|
166
|
-
const internalComponentsDir =
|
|
167
|
-
|
|
168
|
-
|
|
215
|
+
const internalComponentsDir = import_path.default.resolve(
|
|
216
|
+
internalDirectory,
|
|
217
|
+
`${entryName}/${import_constants.FILE_SYSTEM_ROUTES_COMPONENTS_DIR}`
|
|
218
|
+
);
|
|
219
|
+
import_utils.fs.emptyDirSync(internalComponentsDir);
|
|
220
|
+
routes = normalizeNestedRoutes(
|
|
221
|
+
routes,
|
|
222
|
+
internalComponentsDir,
|
|
223
|
+
internalDirectory,
|
|
224
|
+
internalDirAlias
|
|
225
|
+
);
|
|
169
226
|
parents.length = 0;
|
|
170
|
-
|
|
171
|
-
// FIXME: support more situations
|
|
172
227
|
routes.sort((a, b) => {
|
|
173
|
-
const delta = (0,
|
|
228
|
+
const delta = (0, import_utils3.getRouteWeight)(a.path) - (0, import_utils3.getRouteWeight)(b.path);
|
|
174
229
|
if (delta === 0) {
|
|
175
230
|
return a.path.length - b.path.length;
|
|
176
231
|
}
|
|
177
232
|
return delta;
|
|
178
233
|
});
|
|
179
|
-
(0,
|
|
234
|
+
(0, import_utils3.debug)(`fileSystem routes: %o`, routes);
|
|
180
235
|
return routes;
|
|
181
236
|
};
|
|
182
|
-
exports.getClientRoutes = getClientRoutes;
|
|
@@ -1,19 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
get: function () {
|
|
15
|
-
return _getRoutesLegacy.getClientRoutes;
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
14
|
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var stdin_exports = {};
|
|
19
|
+
__export(stdin_exports, {
|
|
20
|
+
getClientRoutes: () => import_getRoutes.getClientRoutes,
|
|
21
|
+
getClientRoutesLegacy: () => import_getRoutesLegacy.getClientRoutes
|
|
17
22
|
});
|
|
18
|
-
|
|
19
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
24
|
+
var import_getRoutes = require("./getRoutes");
|
|
25
|
+
var import_getRoutesLegacy = require("./getRoutesLegacy");
|
|
@@ -1,28 +1,51 @@
|
|
|
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 stdin_exports = {};
|
|
25
|
+
__export(stdin_exports, {
|
|
26
|
+
debug: () => debug,
|
|
27
|
+
findLayout: () => findLayout,
|
|
28
|
+
getRouteWeight: () => getRouteWeight,
|
|
29
|
+
shouldSkip: () => shouldSkip
|
|
5
30
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const shouldSkip = file => {
|
|
18
|
-
|
|
19
|
-
if (_utils.fs.statSync(file).isDirectory()) {
|
|
31
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
32
|
+
var import_path = __toESM(require("path"));
|
|
33
|
+
var import_utils = require("@modern-js/utils");
|
|
34
|
+
var import_constants = require("../constants");
|
|
35
|
+
const debug = (0, import_utils.createDebugger)("get-client-routes");
|
|
36
|
+
const findLayout = (dir) => (0, import_utils.findExists)(
|
|
37
|
+
import_constants.JS_EXTENSIONS.map(
|
|
38
|
+
(ext) => import_path.default.resolve(dir, `${import_constants.FILE_SYSTEM_ROUTES_LAYOUT}${ext}`)
|
|
39
|
+
)
|
|
40
|
+
);
|
|
41
|
+
const getRouteWeight = (route) => route === "*" ? 999 : route.split(":").length - 1;
|
|
42
|
+
const shouldSkip = (file) => {
|
|
43
|
+
if (import_utils.fs.statSync(file).isDirectory()) {
|
|
20
44
|
return false;
|
|
21
45
|
}
|
|
22
|
-
const ext =
|
|
23
|
-
if (
|
|
46
|
+
const ext = import_path.default.extname(file);
|
|
47
|
+
if (import_constants.FILE_SYSTEM_ROUTES_IGNORED_REGEX.test(file) || !import_constants.JS_EXTENSIONS.includes(ext) || import_constants.FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT === import_path.default.basename(file, ext)) {
|
|
24
48
|
return true;
|
|
25
49
|
}
|
|
26
50
|
return false;
|
|
27
51
|
};
|
|
28
|
-
exports.shouldSkip = shouldSkip;
|
|
@@ -1,29 +1,54 @@
|
|
|
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 stdin_exports = {};
|
|
25
|
+
__export(stdin_exports, {
|
|
26
|
+
getFileSystemEntry: () => getFileSystemEntry
|
|
5
27
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
28
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
29
|
+
var import_fs = __toESM(require("fs"));
|
|
30
|
+
var import_path = __toESM(require("path"));
|
|
31
|
+
var import_utils = require("@modern-js/utils");
|
|
32
|
+
var import_isDefaultExportFunction = require("./isDefaultExportFunction");
|
|
33
|
+
var import_constants = require("./constants");
|
|
34
|
+
const hasIndex = (dir) => (0, import_utils.findExists)(
|
|
35
|
+
import_constants.JS_EXTENSIONS.map((ext) => import_path.default.resolve(dir, `${import_constants.INDEX_FILE_NAME}${ext}`))
|
|
36
|
+
);
|
|
37
|
+
const hasApp = (dir) => (0, import_utils.findExists)(
|
|
38
|
+
import_constants.JS_EXTENSIONS.map((ext) => import_path.default.resolve(dir, `${import_constants.APP_FILE_NAME}${ext}`))
|
|
39
|
+
);
|
|
40
|
+
const hasPages = (dir) => import_fs.default.existsSync(import_path.default.join(dir, import_constants.PAGES_DIR_NAME));
|
|
41
|
+
const hasNestedRoutes = (dir) => import_fs.default.existsSync(import_path.default.join(dir, import_constants.NESTED_ROUTES_DIR));
|
|
42
|
+
const isBundleEntry = (dir) => hasApp(dir) || hasPages(dir) || hasIndex(dir) || hasNestedRoutes(dir);
|
|
43
|
+
const scanDir = (dirs) => dirs.map((dir) => {
|
|
19
44
|
const indexFile = hasIndex(dir);
|
|
20
|
-
const customBootstrap = (0,
|
|
21
|
-
const entryName =
|
|
45
|
+
const customBootstrap = (0, import_isDefaultExportFunction.isDefaultExportFunction)(indexFile) ? indexFile : false;
|
|
46
|
+
const entryName = import_path.default.basename(dir);
|
|
22
47
|
if (indexFile && !customBootstrap) {
|
|
23
48
|
return {
|
|
24
49
|
entryName,
|
|
25
50
|
entry: indexFile,
|
|
26
|
-
absoluteEntryDir:
|
|
51
|
+
absoluteEntryDir: import_path.default.resolve(dir),
|
|
27
52
|
isAutoMount: false
|
|
28
53
|
};
|
|
29
54
|
}
|
|
@@ -31,9 +56,9 @@ const scanDir = dirs => dirs.map(dir => {
|
|
|
31
56
|
if (isHasApp) {
|
|
32
57
|
return {
|
|
33
58
|
entryName,
|
|
34
|
-
entry:
|
|
59
|
+
entry: import_path.default.join(dir, import_constants.APP_FILE_NAME),
|
|
35
60
|
isAutoMount: true,
|
|
36
|
-
absoluteEntryDir:
|
|
61
|
+
absoluteEntryDir: import_path.default.resolve(dir),
|
|
37
62
|
customBootstrap
|
|
38
63
|
};
|
|
39
64
|
}
|
|
@@ -42,42 +67,49 @@ const scanDir = dirs => dirs.map(dir => {
|
|
|
42
67
|
if (isHasNestedRoutes || isHasPages) {
|
|
43
68
|
const entrypoint = {
|
|
44
69
|
entryName,
|
|
45
|
-
entry:
|
|
70
|
+
entry: "",
|
|
46
71
|
fileSystemRoutes: {
|
|
47
|
-
globalApp: (0,
|
|
72
|
+
globalApp: (0, import_utils.findExists)(
|
|
73
|
+
import_constants.JS_EXTENSIONS.map(
|
|
74
|
+
(ext) => import_path.default.resolve(
|
|
75
|
+
dir,
|
|
76
|
+
`./${import_constants.PAGES_DIR_NAME}/${import_constants.FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT}${ext}`
|
|
77
|
+
)
|
|
78
|
+
)
|
|
79
|
+
)
|
|
48
80
|
},
|
|
49
81
|
isAutoMount: true,
|
|
50
|
-
absoluteEntryDir:
|
|
82
|
+
absoluteEntryDir: import_path.default.resolve(dir),
|
|
51
83
|
customBootstrap
|
|
52
84
|
};
|
|
53
85
|
if (isHasPages) {
|
|
54
|
-
entrypoint.entry =
|
|
86
|
+
entrypoint.entry = import_path.default.join(dir, import_constants.PAGES_DIR_NAME);
|
|
55
87
|
}
|
|
56
88
|
if (isHasNestedRoutes) {
|
|
57
|
-
entrypoint.nestedRoutesEntry =
|
|
89
|
+
entrypoint.nestedRoutesEntry = import_path.default.join(dir, import_constants.NESTED_ROUTES_DIR);
|
|
58
90
|
}
|
|
59
91
|
return entrypoint;
|
|
60
92
|
}
|
|
61
93
|
return {
|
|
62
94
|
entryName,
|
|
63
95
|
entry: indexFile,
|
|
64
|
-
absoluteEntryDir:
|
|
96
|
+
absoluteEntryDir: import_path.default.resolve(dir),
|
|
65
97
|
isAutoMount: false
|
|
66
98
|
};
|
|
67
99
|
});
|
|
68
100
|
const getFileSystemEntry = (appContext, config) => {
|
|
101
|
+
const { appDirectory } = appContext;
|
|
69
102
|
const {
|
|
70
|
-
|
|
71
|
-
} = appContext;
|
|
72
|
-
const {
|
|
73
|
-
source: {
|
|
74
|
-
entriesDir
|
|
75
|
-
}
|
|
103
|
+
source: { entriesDir }
|
|
76
104
|
} = config;
|
|
77
|
-
const src = (0,
|
|
78
|
-
if (
|
|
79
|
-
if (
|
|
80
|
-
return scanDir(
|
|
105
|
+
const src = (0, import_utils.ensureAbsolutePath)(appDirectory, entriesDir || "");
|
|
106
|
+
if (import_fs.default.existsSync(src)) {
|
|
107
|
+
if (import_fs.default.statSync(src).isDirectory()) {
|
|
108
|
+
return scanDir(
|
|
109
|
+
isBundleEntry(src) ? [src] : import_fs.default.readdirSync(src).map((file) => import_path.default.join(src, file)).filter(
|
|
110
|
+
(file) => import_fs.default.statSync(file).isDirectory() && isBundleEntry(file)
|
|
111
|
+
)
|
|
112
|
+
);
|
|
81
113
|
} else {
|
|
82
114
|
throw Error(`source.entriesDir accept a directory.`);
|
|
83
115
|
}
|
|
@@ -85,4 +117,3 @@ const getFileSystemEntry = (appContext, config) => {
|
|
|
85
117
|
throw Error(`src dir ${entriesDir} not found.`);
|
|
86
118
|
}
|
|
87
119
|
};
|
|
88
|
-
exports.getFileSystemEntry = getFileSystemEntry;
|