@modern-js/app-tools 2.35.1 → 2.36.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/dist/cjs/analyze/constants.js +68 -75
- package/dist/cjs/analyze/generateCode.js +74 -57
- package/dist/cjs/analyze/getBundleEntry.js +53 -27
- package/dist/cjs/analyze/getClientRoutes/getRoutes.js +63 -37
- package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +63 -37
- package/dist/cjs/analyze/getClientRoutes/index.js +27 -17
- package/dist/cjs/analyze/getClientRoutes/utils.js +47 -30
- package/dist/cjs/analyze/getFileSystemEntry.js +58 -32
- package/dist/cjs/analyze/getHtmlTemplate.js +45 -20
- package/dist/cjs/analyze/getServerRoutes.js +55 -29
- package/dist/cjs/analyze/index.js +81 -61
- package/dist/cjs/analyze/isDefaultExportFunction.js +42 -17
- package/dist/cjs/analyze/makeLegalIdentifier.js +24 -7
- package/dist/cjs/analyze/nestedRoutes.js +111 -65
- package/dist/cjs/analyze/templates.js +135 -53
- package/dist/cjs/analyze/utils.js +101 -67
- package/dist/cjs/builder/builder-rspack/adapterCopy.js +60 -30
- package/dist/cjs/builder/builder-rspack/index.js +29 -12
- package/dist/cjs/builder/builder-webpack/adapterModern.js +26 -11
- package/dist/cjs/builder/builder-webpack/createCopyPattern.js +30 -20
- package/dist/cjs/builder/builder-webpack/index.js +40 -14
- package/dist/cjs/builder/generator/createBuilderOptions.js +24 -7
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +26 -9
- package/dist/cjs/builder/generator/getBuilderTargets.js +27 -10
- package/dist/cjs/builder/generator/index.js +44 -18
- package/dist/cjs/builder/index.js +39 -13
- package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +36 -7
- package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +36 -19
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +47 -21
- package/dist/cjs/builder/shared/builderPlugins/index.js +24 -6
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +27 -10
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +29 -12
- package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +42 -25
- package/dist/cjs/builder/shared/bundlerPlugins/index.js +24 -6
- package/dist/cjs/builder/shared/createCopyInfo.js +38 -12
- package/dist/cjs/builder/shared/index.js +24 -6
- package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +21 -8
- package/dist/cjs/builder/shared/types.js +15 -3
- package/dist/cjs/commands/build.js +33 -16
- package/dist/cjs/commands/deploy.js +24 -7
- package/dist/cjs/commands/dev.js +40 -23
- package/dist/cjs/commands/index.js +24 -6
- package/dist/cjs/commands/inspect.js +26 -9
- package/dist/cjs/commands/serve.js +48 -22
- package/dist/cjs/config/default.js +33 -23
- package/dist/cjs/config/index.js +24 -6
- package/dist/cjs/config/initialize/index.js +27 -10
- package/dist/cjs/config/initialize/inits.js +40 -37
- package/dist/cjs/config/legacy/createHtmlConfig.js +24 -7
- package/dist/cjs/config/legacy/createOutputConfig.js +24 -7
- package/dist/cjs/config/legacy/createSourceConfig.js +24 -7
- package/dist/cjs/config/legacy/createToolsConfig.js +24 -7
- package/dist/cjs/config/legacy/index.js +34 -23
- package/dist/cjs/defineConfig.js +25 -15
- package/dist/cjs/exports/server.js +25 -8
- package/dist/cjs/hooks.js +50 -33
- package/dist/cjs/index.js +95 -80
- package/dist/cjs/initialize/index.js +30 -17
- package/dist/cjs/locale/en.js +24 -7
- package/dist/cjs/locale/index.js +31 -21
- package/dist/cjs/locale/zh.js +24 -7
- package/dist/cjs/schema/Schema.js +28 -11
- package/dist/cjs/schema/index.js +40 -21
- package/dist/cjs/schema/legacy.js +30 -17
- package/dist/cjs/types/config/deploy.js +15 -3
- package/dist/cjs/types/config/dev.js +15 -3
- package/dist/cjs/types/config/experiments.js +15 -3
- package/dist/cjs/types/config/html.js +15 -3
- package/dist/cjs/types/config/index.js +20 -4
- package/dist/cjs/types/config/output.js +15 -3
- package/dist/cjs/types/config/performance.js +15 -3
- package/dist/cjs/types/config/security.js +15 -3
- package/dist/cjs/types/config/source.js +15 -3
- package/dist/cjs/types/config/testing.js +15 -3
- package/dist/cjs/types/config/tools.js +15 -3
- package/dist/cjs/types/hooks.js +15 -3
- package/dist/cjs/types/index.js +24 -6
- package/dist/cjs/types/legacyConfig/deploy.js +15 -3
- package/dist/cjs/types/legacyConfig/dev.js +15 -3
- package/dist/cjs/types/legacyConfig/index.js +15 -3
- package/dist/cjs/types/legacyConfig/output.js +15 -3
- package/dist/cjs/types/legacyConfig/source.js +15 -3
- package/dist/cjs/types/legacyConfig/testing.js +15 -3
- package/dist/cjs/types/legacyConfig/tools.js +15 -3
- package/dist/cjs/types/utils.js +15 -3
- package/dist/cjs/utils/config.js +50 -33
- package/dist/cjs/utils/createServer.js +43 -26
- package/dist/cjs/utils/env.js +26 -9
- package/dist/cjs/utils/generateWatchFiles.js +41 -22
- package/dist/cjs/utils/getSelectedEntries.js +30 -13
- package/dist/cjs/utils/getServerInternalPlugins.js +24 -7
- package/dist/cjs/utils/printInstructions.js +27 -10
- package/dist/cjs/utils/restart.js +30 -13
- package/dist/cjs/utils/routes.js +37 -11
- package/dist/cjs/utils/types.js +15 -3
- package/dist/esm/analyze/constants.js +48 -22
- package/dist/esm/analyze/generateCode.js +38 -33
- package/dist/esm/analyze/getBundleEntry.js +4 -1
- package/dist/esm/analyze/getClientRoutes/getRoutes.js +12 -9
- package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +12 -9
- package/dist/esm/analyze/getClientRoutes/index.js +6 -2
- package/dist/esm/analyze/getClientRoutes/utils.js +9 -4
- package/dist/esm/analyze/getFileSystemEntry.js +10 -7
- package/dist/esm/analyze/getHtmlTemplate.js +7 -4
- package/dist/esm/analyze/getServerRoutes.js +8 -5
- package/dist/esm/analyze/index.js +31 -30
- package/dist/esm/analyze/isDefaultExportFunction.js +4 -1
- package/dist/esm/analyze/makeLegalIdentifier.js +4 -1
- package/dist/esm/analyze/nestedRoutes.js +93 -30
- package/dist/esm/analyze/templates.js +121 -30
- package/dist/esm/analyze/utils.js +103 -18
- package/dist/esm/builder/builder-rspack/adapterCopy.js +16 -9
- package/dist/esm/builder/builder-rspack/index.js +4 -1
- package/dist/esm/builder/builder-webpack/adapterModern.js +4 -3
- package/dist/esm/builder/builder-webpack/createCopyPattern.js +8 -4
- package/dist/esm/builder/builder-webpack/index.js +4 -1
- package/dist/esm/builder/generator/createBuilderOptions.js +5 -2
- package/dist/esm/builder/generator/createBuilderProviderConfig.js +4 -1
- package/dist/esm/builder/generator/getBuilderTargets.js +4 -1
- package/dist/esm/builder/generator/index.js +5 -2
- package/dist/esm/builder/index.js +4 -1
- package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +6 -1
- package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +11 -8
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +10 -7
- package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +4 -1
- package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +4 -1
- package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +7 -4
- package/dist/esm/builder/shared/createCopyInfo.js +7 -4
- package/dist/esm/builder/shared/loaders/serverModuleLoader.js +4 -1
- package/dist/esm/builder/shared/types.js +0 -1
- package/dist/esm/commands/build.js +6 -3
- package/dist/esm/commands/deploy.js +4 -1
- package/dist/esm/commands/dev.js +12 -9
- package/dist/esm/commands/inspect.js +4 -1
- package/dist/esm/commands/serve.js +7 -4
- package/dist/esm/config/default.js +12 -8
- package/dist/esm/config/initialize/index.js +4 -1
- package/dist/esm/config/initialize/inits.js +8 -19
- package/dist/esm/config/legacy/createHtmlConfig.js +17 -14
- package/dist/esm/config/legacy/createOutputConfig.js +19 -16
- package/dist/esm/config/legacy/createSourceConfig.js +14 -11
- package/dist/esm/config/legacy/createToolsConfig.js +18 -15
- package/dist/esm/config/legacy/index.js +21 -16
- package/dist/esm/defineConfig.js +6 -2
- package/dist/esm/exports/server.js +4 -1
- package/dist/esm/hooks.js +4 -1
- package/dist/esm/index.js +19 -11
- package/dist/esm/initialize/index.js +9 -6
- package/dist/esm/locale/en.js +4 -1
- package/dist/esm/locale/index.js +4 -1
- package/dist/esm/locale/zh.js +4 -1
- package/dist/esm/schema/Schema.js +6 -3
- package/dist/esm/schema/index.js +5 -2
- package/dist/esm/schema/legacy.js +4 -1
- package/dist/esm/types/config/deploy.js +0 -1
- package/dist/esm/types/config/dev.js +0 -1
- package/dist/esm/types/config/experiments.js +0 -1
- package/dist/esm/types/config/html.js +0 -1
- package/dist/esm/types/config/output.js +0 -1
- package/dist/esm/types/config/performance.js +0 -1
- package/dist/esm/types/config/security.js +0 -1
- package/dist/esm/types/config/source.js +0 -1
- package/dist/esm/types/config/testing.js +0 -1
- package/dist/esm/types/config/tools.js +0 -1
- package/dist/esm/types/hooks.js +0 -1
- package/dist/esm/types/legacyConfig/deploy.js +0 -1
- package/dist/esm/types/legacyConfig/dev.js +0 -1
- package/dist/esm/types/legacyConfig/index.js +0 -1
- package/dist/esm/types/legacyConfig/output.js +0 -1
- package/dist/esm/types/legacyConfig/source.js +0 -1
- package/dist/esm/types/legacyConfig/testing.js +0 -1
- package/dist/esm/types/legacyConfig/tools.js +0 -1
- package/dist/esm/types/utils.js +0 -1
- package/dist/esm/utils/config.js +12 -6
- package/dist/esm/utils/createServer.js +12 -5
- package/dist/esm/utils/env.js +4 -1
- package/dist/esm/utils/generateWatchFiles.js +6 -2
- package/dist/esm/utils/getSelectedEntries.js +4 -1
- package/dist/esm/utils/getServerInternalPlugins.js +5 -2
- package/dist/esm/utils/printInstructions.js +4 -1
- package/dist/esm/utils/restart.js +4 -1
- package/dist/esm/utils/routes.js +3 -1
- package/dist/esm/utils/types.js +0 -1
- package/dist/esm-node/analyze/constants.js +48 -22
- package/dist/esm-node/analyze/generateCode.js +8 -3
- package/dist/esm-node/analyze/getBundleEntry.js +4 -1
- package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +4 -1
- package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +4 -1
- package/dist/esm-node/analyze/getClientRoutes/index.js +6 -2
- package/dist/esm-node/analyze/getClientRoutes/utils.js +9 -4
- package/dist/esm-node/analyze/getFileSystemEntry.js +4 -1
- package/dist/esm-node/analyze/getHtmlTemplate.js +4 -1
- package/dist/esm-node/analyze/getServerRoutes.js +4 -1
- package/dist/esm-node/analyze/index.js +9 -8
- package/dist/esm-node/analyze/isDefaultExportFunction.js +4 -1
- package/dist/esm-node/analyze/makeLegalIdentifier.js +4 -1
- package/dist/esm-node/analyze/nestedRoutes.js +42 -9
- package/dist/esm-node/analyze/templates.js +93 -18
- package/dist/esm-node/analyze/utils.js +48 -16
- package/dist/esm-node/builder/builder-rspack/adapterCopy.js +18 -11
- package/dist/esm-node/builder/builder-rspack/index.js +4 -1
- package/dist/esm-node/builder/builder-webpack/adapterModern.js +4 -3
- package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +6 -2
- package/dist/esm-node/builder/builder-webpack/index.js +4 -1
- package/dist/esm-node/builder/generator/createBuilderOptions.js +4 -1
- package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +4 -1
- package/dist/esm-node/builder/generator/getBuilderTargets.js +4 -1
- package/dist/esm-node/builder/generator/index.js +4 -1
- package/dist/esm-node/builder/index.js +4 -1
- package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +6 -1
- package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +4 -1
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +4 -1
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +4 -1
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +4 -1
- package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +4 -1
- package/dist/esm-node/builder/shared/createCopyInfo.js +4 -1
- package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +4 -1
- package/dist/esm-node/builder/shared/types.js +0 -1
- package/dist/esm-node/commands/build.js +4 -1
- package/dist/esm-node/commands/deploy.js +4 -1
- package/dist/esm-node/commands/dev.js +4 -1
- package/dist/esm-node/commands/inspect.js +4 -1
- package/dist/esm-node/commands/serve.js +4 -1
- package/dist/esm-node/config/default.js +6 -2
- package/dist/esm-node/config/initialize/index.js +4 -1
- package/dist/esm-node/config/initialize/inits.js +8 -20
- package/dist/esm-node/config/legacy/createHtmlConfig.js +4 -1
- package/dist/esm-node/config/legacy/createOutputConfig.js +4 -1
- package/dist/esm-node/config/legacy/createSourceConfig.js +4 -1
- package/dist/esm-node/config/legacy/createToolsConfig.js +4 -1
- package/dist/esm-node/config/legacy/index.js +7 -2
- package/dist/esm-node/defineConfig.js +6 -2
- package/dist/esm-node/exports/server.js +4 -1
- package/dist/esm-node/hooks.js +4 -1
- package/dist/esm-node/index.js +14 -6
- package/dist/esm-node/initialize/index.js +4 -1
- package/dist/esm-node/locale/en.js +4 -1
- package/dist/esm-node/locale/index.js +4 -1
- package/dist/esm-node/locale/zh.js +4 -1
- package/dist/esm-node/schema/Schema.js +4 -1
- package/dist/esm-node/schema/index.js +5 -2
- package/dist/esm-node/schema/legacy.js +4 -1
- package/dist/esm-node/types/config/deploy.js +0 -1
- package/dist/esm-node/types/config/dev.js +0 -1
- package/dist/esm-node/types/config/experiments.js +0 -1
- package/dist/esm-node/types/config/html.js +0 -1
- package/dist/esm-node/types/config/output.js +0 -1
- package/dist/esm-node/types/config/performance.js +0 -1
- package/dist/esm-node/types/config/security.js +0 -1
- package/dist/esm-node/types/config/source.js +0 -1
- package/dist/esm-node/types/config/testing.js +0 -1
- package/dist/esm-node/types/config/tools.js +0 -1
- package/dist/esm-node/types/hooks.js +0 -1
- package/dist/esm-node/types/legacyConfig/deploy.js +0 -1
- package/dist/esm-node/types/legacyConfig/dev.js +0 -1
- package/dist/esm-node/types/legacyConfig/index.js +0 -1
- package/dist/esm-node/types/legacyConfig/output.js +0 -1
- package/dist/esm-node/types/legacyConfig/source.js +0 -1
- package/dist/esm-node/types/legacyConfig/testing.js +0 -1
- package/dist/esm-node/types/legacyConfig/tools.js +0 -1
- package/dist/esm-node/types/utils.js +0 -1
- package/dist/esm-node/utils/config.js +10 -4
- package/dist/esm-node/utils/createServer.js +12 -5
- package/dist/esm-node/utils/env.js +4 -1
- package/dist/esm-node/utils/generateWatchFiles.js +6 -2
- package/dist/esm-node/utils/getSelectedEntries.js +4 -1
- package/dist/esm-node/utils/getServerInternalPlugins.js +4 -1
- package/dist/esm-node/utils/printInstructions.js +4 -1
- package/dist/esm-node/utils/restart.js +4 -1
- package/dist/esm-node/utils/routes.js +3 -1
- package/dist/esm-node/utils/types.js +0 -1
- package/dist/types/analyze/constants.d.ts +1 -0
- package/dist/types/analyze/utils.d.ts +2 -1
- package/dist/types/types/config/index.d.ts +3 -2
- package/package.json +24 -24
@@ -1,31 +1,32 @@
|
|
1
|
-
|
1
|
+
const JS_EXTENSIONS = [
|
2
2
|
".js",
|
3
3
|
".ts",
|
4
4
|
".jsx",
|
5
5
|
".tsx"
|
6
6
|
];
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
7
|
+
const INDEX_FILE_NAME = "index";
|
8
|
+
const APP_FILE_NAME = "App";
|
9
|
+
const PAGES_DIR_NAME = "pages";
|
10
|
+
const NESTED_ROUTES_DIR = "routes";
|
11
|
+
const FILE_SYSTEM_ROUTES_FILE_NAME = "routes.js";
|
12
|
+
const LOADER_EXPORT_NAME = "loader";
|
13
|
+
const ACTION_EXPORT_NAME = "action";
|
14
|
+
const TEMP_LOADERS_DIR = "__loaders__";
|
15
|
+
const ENTRY_POINT_FILE_NAME = "index.jsx";
|
16
|
+
const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.jsx";
|
17
|
+
const FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP = /^\[(\S+)\]([*+?]?)$/;
|
18
|
+
const FILE_SYSTEM_ROUTES_LAYOUT = "_layout";
|
19
|
+
const FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT = "_app";
|
20
|
+
const FILE_SYSTEM_ROUTES_INDEX = "index";
|
21
|
+
const FILE_SYSTEM_ROUTES_IGNORED_REGEX = /\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/;
|
22
|
+
const HTML_PARTIALS_FOLDER = "html";
|
23
|
+
const HTML_PARTIALS_EXTENSIONS = [
|
23
24
|
".htm",
|
24
25
|
".html",
|
25
26
|
".ejs"
|
26
27
|
];
|
27
|
-
|
28
|
-
|
28
|
+
const FILE_SYSTEM_ROUTES_COMPONENTS_DIR = "internal_components";
|
29
|
+
const NESTED_ROUTE = {
|
29
30
|
LAYOUT_FILE: "layout",
|
30
31
|
LAYOUT_CONFIG_FILE: "layout.config",
|
31
32
|
LAYOUT_LOADER_FILE: "layout.loader",
|
@@ -45,6 +46,31 @@ export const NESTED_ROUTE = {
|
|
45
46
|
ERROR_FILE: "error",
|
46
47
|
LOADER_FILE: "loader"
|
47
48
|
};
|
48
|
-
|
49
|
-
|
50
|
-
|
49
|
+
const APP_CONFIG_NAME = "config";
|
50
|
+
const APP_INIT_EXPORTED = "init";
|
51
|
+
const APP_INIT_IMPORTED = "appInit";
|
52
|
+
export {
|
53
|
+
ACTION_EXPORT_NAME,
|
54
|
+
APP_CONFIG_NAME,
|
55
|
+
APP_FILE_NAME,
|
56
|
+
APP_INIT_EXPORTED,
|
57
|
+
APP_INIT_IMPORTED,
|
58
|
+
ENTRY_BOOTSTRAP_FILE_NAME,
|
59
|
+
ENTRY_POINT_FILE_NAME,
|
60
|
+
FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
|
61
|
+
FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
|
62
|
+
FILE_SYSTEM_ROUTES_FILE_NAME,
|
63
|
+
FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT,
|
64
|
+
FILE_SYSTEM_ROUTES_IGNORED_REGEX,
|
65
|
+
FILE_SYSTEM_ROUTES_INDEX,
|
66
|
+
FILE_SYSTEM_ROUTES_LAYOUT,
|
67
|
+
HTML_PARTIALS_EXTENSIONS,
|
68
|
+
HTML_PARTIALS_FOLDER,
|
69
|
+
INDEX_FILE_NAME,
|
70
|
+
JS_EXTENSIONS,
|
71
|
+
LOADER_EXPORT_NAME,
|
72
|
+
NESTED_ROUTE,
|
73
|
+
NESTED_ROUTES_DIR,
|
74
|
+
PAGES_DIR_NAME,
|
75
|
+
TEMP_LOADERS_DIR
|
76
|
+
};
|
@@ -25,7 +25,7 @@ const createImportSpecifier = (specifiers) => {
|
|
25
25
|
return `{ ${named.join(", ")} }`;
|
26
26
|
}
|
27
27
|
};
|
28
|
-
|
28
|
+
const createImportStatements = (statements) => {
|
29
29
|
const deDuplicated = [];
|
30
30
|
const seen = /* @__PURE__ */ new Map();
|
31
31
|
for (const { value, specifiers, initialize } of statements) {
|
@@ -49,7 +49,7 @@ ${initialize || ""}`);
|
|
49
49
|
return deDuplicated.map(({ value, specifiers, initialize }) => `import ${createImportSpecifier(specifiers)} from '${value}';
|
50
50
|
${initialize || ""}`).join("\n");
|
51
51
|
};
|
52
|
-
|
52
|
+
const generateCode = async (appContext, config, entrypoints, api) => {
|
53
53
|
const { internalDirectory, srcDirectory, internalDirAlias, internalSrcAlias, packageName } = appContext;
|
54
54
|
const hookRunners = api.useHookRunners();
|
55
55
|
const isV5 = isRouterV5(config);
|
@@ -152,7 +152,7 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
152
152
|
}
|
153
153
|
}
|
154
154
|
};
|
155
|
-
|
155
|
+
const generateIndexCode = async ({ appContext, api, entrypoints, config, importsStatemets, bundlerConfigs }) => {
|
156
156
|
const hookRunners = api.useHookRunners();
|
157
157
|
const { mountId } = config.html;
|
158
158
|
const { internalDirectory, packageName } = appContext;
|
@@ -215,3 +215,8 @@ export const generateIndexCode = async ({ appContext, api, entrypoints, config,
|
|
215
215
|
}
|
216
216
|
}));
|
217
217
|
};
|
218
|
+
export {
|
219
|
+
createImportStatements,
|
220
|
+
generateCode,
|
221
|
+
generateIndexCode
|
222
|
+
};
|
@@ -22,7 +22,7 @@ const ifAlreadyExists = (entrypoints, checked) => entrypoints.some((entrypoint)
|
|
22
22
|
}
|
23
23
|
return false;
|
24
24
|
});
|
25
|
-
|
25
|
+
const getBundleEntry = (appContext, config) => {
|
26
26
|
const { appDirectory, packageName } = appContext;
|
27
27
|
const { disableDefaultEntries, entries, entriesDir, mainEntryName } = config.source;
|
28
28
|
const defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config);
|
@@ -63,3 +63,6 @@ export const getBundleEntry = (appContext, config) => {
|
|
63
63
|
}
|
64
64
|
return defaults;
|
65
65
|
};
|
66
|
+
export {
|
67
|
+
getBundleEntry
|
68
|
+
};
|
@@ -125,7 +125,7 @@ export default ${lastComponent}`);
|
|
125
125
|
});
|
126
126
|
return normalized;
|
127
127
|
};
|
128
|
-
|
128
|
+
const getClientRoutes = ({ entrypoint, srcDirectory, srcAlias, internalDirectory, internalDirAlias }) => {
|
129
129
|
const { entryName, pageRoutesEntry } = entrypoint;
|
130
130
|
if (!pageRoutesEntry) {
|
131
131
|
return [];
|
@@ -158,3 +158,6 @@ export const getClientRoutes = ({ entrypoint, srcDirectory, srcAlias, internalDi
|
|
158
158
|
debug(`fileSystem routes: %o`, routes);
|
159
159
|
return routes;
|
160
160
|
};
|
161
|
+
export {
|
162
|
+
getClientRoutes
|
163
|
+
};
|
@@ -126,7 +126,7 @@ export default ${lastComponent}`);
|
|
126
126
|
});
|
127
127
|
return normalized;
|
128
128
|
};
|
129
|
-
|
129
|
+
const getClientRoutes = ({ entrypoint, srcDirectory, srcAlias, internalDirectory, internalDirAlias }) => {
|
130
130
|
const { entry, entryName } = entrypoint;
|
131
131
|
if (!fs.existsSync(entry)) {
|
132
132
|
throw new Error(`generate file system routes error, ${entry} directory not found.`);
|
@@ -156,3 +156,6 @@ export const getClientRoutes = ({ entrypoint, srcDirectory, srcAlias, internalDi
|
|
156
156
|
debug(`fileSystem routes: %o`, routes);
|
157
157
|
return routes;
|
158
158
|
};
|
159
|
+
export {
|
160
|
+
getClientRoutes
|
161
|
+
};
|
@@ -1,2 +1,6 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
import { getClientRoutes } from "./getRoutes";
|
2
|
+
import { getClientRoutes as getClientRoutes2 } from "./getRoutesLegacy";
|
3
|
+
export {
|
4
|
+
getClientRoutes,
|
5
|
+
getClientRoutes2 as getClientRoutesLegacy
|
6
|
+
};
|
@@ -2,10 +2,9 @@ import path from "path";
|
|
2
2
|
import { createDebugger, findExists, fs } from "@modern-js/utils";
|
3
3
|
import { JS_EXTENSIONS, FILE_SYSTEM_ROUTES_LAYOUT, FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT, FILE_SYSTEM_ROUTES_IGNORED_REGEX } from "../constants";
|
4
4
|
const debug = createDebugger("get-client-routes");
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
export const shouldSkip = (file) => {
|
5
|
+
const findLayout = (dir) => findExists(JS_EXTENSIONS.map((ext) => path.resolve(dir, `${FILE_SYSTEM_ROUTES_LAYOUT}${ext}`)));
|
6
|
+
const getRouteWeight = (route) => route === "*" ? 999 : route.split(":").length - 1;
|
7
|
+
const shouldSkip = (file) => {
|
9
8
|
if (fs.statSync(file).isDirectory()) {
|
10
9
|
return false;
|
11
10
|
}
|
@@ -15,3 +14,9 @@ export const shouldSkip = (file) => {
|
|
15
14
|
}
|
16
15
|
return false;
|
17
16
|
};
|
17
|
+
export {
|
18
|
+
debug,
|
19
|
+
findLayout,
|
20
|
+
getRouteWeight,
|
21
|
+
shouldSkip
|
22
|
+
};
|
@@ -64,7 +64,7 @@ const scanDir = (dirs) => dirs.map((dir) => {
|
|
64
64
|
isAutoMount: false
|
65
65
|
};
|
66
66
|
});
|
67
|
-
|
67
|
+
const getFileSystemEntry = (appContext, config) => {
|
68
68
|
const { appDirectory } = appContext;
|
69
69
|
const { source: { entriesDir, disableEntryDirs } } = config;
|
70
70
|
let disabledDirs = [];
|
@@ -84,3 +84,6 @@ export const getFileSystemEntry = (appContext, config) => {
|
|
84
84
|
throw Error(`src dir ${entriesDir} not found.`);
|
85
85
|
}
|
86
86
|
};
|
87
|
+
export {
|
88
|
+
getFileSystemEntry
|
89
|
+
};
|
@@ -21,7 +21,7 @@ const findPartials = (dir, entryName, position) => {
|
|
21
21
|
}
|
22
22
|
return null;
|
23
23
|
};
|
24
|
-
|
24
|
+
const getHtmlTemplate = async (entrypoints, api, { appContext, config }) => {
|
25
25
|
const { appDirectory, internalDirectory } = appContext;
|
26
26
|
const { source: { configDir } } = config;
|
27
27
|
const htmlDir = path.resolve(appDirectory, configDir || "", HTML_PARTIALS_FOLDER);
|
@@ -69,3 +69,6 @@ export const getHtmlTemplate = async (entrypoints, api, { appContext, config })
|
|
69
69
|
});
|
70
70
|
return htmlTemplates;
|
71
71
|
};
|
72
|
+
export {
|
73
|
+
getHtmlTemplate
|
74
|
+
};
|
@@ -121,8 +121,11 @@ const collectStaticRoutes = (appContext, config) => {
|
|
121
121
|
};
|
122
122
|
}) : [];
|
123
123
|
};
|
124
|
-
|
124
|
+
const getServerRoutes = (entrypoints, { appContext, config }) => [
|
125
125
|
...collectHtmlRoutes(entrypoints, appContext, config),
|
126
126
|
...collectStaticRoutes(appContext, config)
|
127
127
|
];
|
128
128
|
const toPosix = (pathStr) => pathStr.split(path.sep).join(path.posix.sep);
|
129
|
+
export {
|
130
|
+
getServerRoutes
|
131
|
+
};
|
@@ -11,7 +11,7 @@ import { checkIsBuildCommands, isPageComponentFile, parseModule, replaceWithAlia
|
|
11
11
|
import { APP_CONFIG_NAME, APP_INIT_EXPORTED, APP_INIT_IMPORTED } from "./constants";
|
12
12
|
import { generateIndexCode } from "./generateCode";
|
13
13
|
const debug = createDebugger("plugin-analyze");
|
14
|
-
|
14
|
+
var analyze_default = ({ bundler }) => ({
|
15
15
|
name: "@modern-js/plugin-analyze",
|
16
16
|
setup: (api) => {
|
17
17
|
let pagesDir = [];
|
@@ -114,13 +114,11 @@ export default ({ bundler }) => ({
|
|
114
114
|
});
|
115
115
|
builder.onDevCompileDone(async ({ isFirstCompile }) => {
|
116
116
|
const hookRunners2 = api.useHookRunners();
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
printInstructions(hookRunners2, appContext, normalizedConfig);
|
123
|
-
}
|
117
|
+
hookRunners2.afterDev({
|
118
|
+
isFirstCompile
|
119
|
+
});
|
120
|
+
if (isFirstCompile) {
|
121
|
+
printInstructions(hookRunners2, appContext, normalizedConfig);
|
124
122
|
}
|
125
123
|
});
|
126
124
|
builder.onBeforeCreateCompiler(async ({ bundlerConfigs }) => {
|
@@ -240,3 +238,6 @@ export default ({ bundler }) => ({
|
|
240
238
|
};
|
241
239
|
}
|
242
240
|
});
|
241
|
+
export {
|
242
|
+
analyze_default as default
|
243
|
+
};
|
@@ -3,7 +3,7 @@ import { parse } from "@babel/parser";
|
|
3
3
|
import traverse from "@babel/traverse";
|
4
4
|
import * as t from "@babel/types";
|
5
5
|
const isFunction = (node) => t.isFunctionDeclaration(node) || t.isFunctionExpression(node) || t.isArrowFunctionExpression(node);
|
6
|
-
|
6
|
+
const isDefaultExportFunction = (file) => {
|
7
7
|
if (!file || !fs.existsSync(file)) {
|
8
8
|
return false;
|
9
9
|
}
|
@@ -42,3 +42,6 @@ export const isDefaultExportFunction = (file) => {
|
|
42
42
|
});
|
43
43
|
return isExportFunction;
|
44
44
|
};
|
45
|
+
export {
|
46
|
+
isDefaultExportFunction
|
47
|
+
};
|
@@ -1,10 +1,13 @@
|
|
1
1
|
const reservedWords = "break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public";
|
2
2
|
const builtins = "arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl";
|
3
3
|
const forbidList = new Set(`${reservedWords} ${builtins}`.split(" "));
|
4
|
-
|
4
|
+
function makeLegalIdentifier(str) {
|
5
5
|
const identifier = str.replace(/-(\w)/g, (_, letter) => letter.toUpperCase()).replace(/[^$_a-zA-Z0-9]/g, "_");
|
6
6
|
if (/\d/.test(identifier[0]) || forbidList.has(identifier)) {
|
7
7
|
return `_${identifier}`;
|
8
8
|
}
|
9
9
|
return identifier || "_";
|
10
10
|
}
|
11
|
+
export {
|
12
|
+
makeLegalIdentifier
|
13
|
+
};
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as path from "path";
|
2
2
|
import { fs, normalizeToPosixPath } from "@modern-js/utils";
|
3
3
|
import { JS_EXTENSIONS, NESTED_ROUTE } from "./constants";
|
4
|
-
import { replaceWithAlias } from "./utils";
|
4
|
+
import { hasAction, replaceWithAlias } from "./utils";
|
5
5
|
const conventionNames = Object.values(NESTED_ROUTE);
|
6
6
|
const replaceDynamicPath = (routePath) => {
|
7
7
|
return routePath.replace(/\[(.*?)\]/g, ":$1");
|
@@ -10,7 +10,7 @@ const getPathWithoutExt = (filename) => {
|
|
10
10
|
const extname = path.extname(filename);
|
11
11
|
return filename.slice(0, -extname.length);
|
12
12
|
};
|
13
|
-
|
13
|
+
const getRouteId = (componentPath, routesDir, entryName, isMainEntry) => {
|
14
14
|
const relativePath = normalizeToPosixPath(path.relative(routesDir, componentPath));
|
15
15
|
const pathWithoutExt = getPathWithoutExt(relativePath);
|
16
16
|
let id = ``;
|
@@ -36,7 +36,7 @@ const createRoute = (routeInfo, rootDir, filename, entryName, isMainEntry) => {
|
|
36
36
|
type: "nested"
|
37
37
|
};
|
38
38
|
};
|
39
|
-
|
39
|
+
const optimizeRoute = (routeTree) => {
|
40
40
|
if (!routeTree.children || routeTree.children.length === 0) {
|
41
41
|
return [
|
42
42
|
routeTree
|
@@ -69,7 +69,7 @@ export const optimizeRoute = (routeTree) => {
|
|
69
69
|
];
|
70
70
|
}
|
71
71
|
};
|
72
|
-
|
72
|
+
const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldVersion) => {
|
73
73
|
var _finalRoute_children;
|
74
74
|
if (!await fs.pathExists(dirname)) {
|
75
75
|
return null;
|
@@ -96,12 +96,16 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
96
96
|
};
|
97
97
|
let pageLoaderFile = "";
|
98
98
|
let pageRoute = null;
|
99
|
+
let pageConfigFile = "";
|
100
|
+
let pageClientData = "";
|
101
|
+
let pageData = "";
|
102
|
+
let pageAction = "";
|
99
103
|
let splatLoaderFile = "";
|
100
|
-
let splatClientData = "";
|
101
|
-
let splatData = "";
|
102
104
|
let splatRoute = null;
|
103
|
-
let pageConfigFile = "";
|
104
105
|
let splatConfigFile = "";
|
106
|
+
let splatClientData = "";
|
107
|
+
let splatData = "";
|
108
|
+
let splatAction = "";
|
105
109
|
const items = await fs.readdir(dirname);
|
106
110
|
for (const item of items) {
|
107
111
|
const itemPath = path.join(dirname, item);
|
@@ -128,6 +132,9 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
128
132
|
}
|
129
133
|
if (itemWithoutExt === NESTED_ROUTE.LAYOUT_DATA_FILE) {
|
130
134
|
route.data = itemPath;
|
135
|
+
if (await hasAction(itemPath)) {
|
136
|
+
route.action = itemPath;
|
137
|
+
}
|
131
138
|
}
|
132
139
|
if (itemWithoutExt === NESTED_ROUTE.LAYOUT_CONFIG_FILE) {
|
133
140
|
if (!route.config) {
|
@@ -141,10 +148,13 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
141
148
|
pageLoaderFile = itemPath;
|
142
149
|
}
|
143
150
|
if (itemWithoutExt === NESTED_ROUTE.PAGE_CLIENT_LOADER) {
|
144
|
-
|
151
|
+
pageClientData = itemPath;
|
145
152
|
}
|
146
153
|
if (itemWithoutExt === NESTED_ROUTE.PAGE_DATA_FILE) {
|
147
|
-
|
154
|
+
pageData = itemPath;
|
155
|
+
if (await hasAction(itemPath)) {
|
156
|
+
pageAction = itemPath;
|
157
|
+
}
|
148
158
|
}
|
149
159
|
if (itemWithoutExt === NESTED_ROUTE.PAGE_CONFIG_FILE) {
|
150
160
|
pageConfigFile = itemPath;
|
@@ -160,6 +170,15 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
160
170
|
if (pageConfigFile) {
|
161
171
|
pageRoute.config = pageConfigFile;
|
162
172
|
}
|
173
|
+
if (pageData) {
|
174
|
+
pageRoute.data = pageData;
|
175
|
+
}
|
176
|
+
if (pageClientData) {
|
177
|
+
pageRoute.clientData = pageClientData;
|
178
|
+
}
|
179
|
+
if (pageAction) {
|
180
|
+
pageRoute.action = pageAction;
|
181
|
+
}
|
163
182
|
(_route_children1 = route.children) === null || _route_children1 === void 0 ? void 0 : _route_children1.push(pageRoute);
|
164
183
|
}
|
165
184
|
if (itemWithoutExt === NESTED_ROUTE.SPLATE_LOADER_FILE) {
|
@@ -175,6 +194,9 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
175
194
|
}
|
176
195
|
if (itemWithoutExt === NESTED_ROUTE.SPLATE_DATA_FILE) {
|
177
196
|
splatData = itemPath;
|
197
|
+
if (await hasAction(itemPath)) {
|
198
|
+
splatAction = itemPath;
|
199
|
+
}
|
178
200
|
}
|
179
201
|
if (itemWithoutExt === NESTED_ROUTE.SPLATE_FILE) {
|
180
202
|
var _route_children2;
|
@@ -194,6 +216,9 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
194
216
|
if (splatConfigFile) {
|
195
217
|
splatRoute.config = splatConfigFile;
|
196
218
|
}
|
219
|
+
if (splatAction) {
|
220
|
+
splatRoute.action = splatAction;
|
221
|
+
}
|
197
222
|
(_route_children2 = route.children) === null || _route_children2 === void 0 ? void 0 : _route_children2.push(splatRoute);
|
198
223
|
}
|
199
224
|
if (itemWithoutExt === NESTED_ROUTE.LOADING_FILE) {
|
@@ -221,9 +246,17 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
221
246
|
};
|
222
247
|
}
|
223
248
|
}
|
249
|
+
if (isRoot && !finalRoute._component) {
|
250
|
+
throw new Error("The root layout component is required, make sure the routes/layout.tsx file exists.");
|
251
|
+
}
|
224
252
|
if (isRoot && !oldVersion) {
|
225
253
|
const optimizedRoutes = optimizeRoute(finalRoute);
|
226
254
|
return optimizedRoutes;
|
227
255
|
}
|
228
256
|
return finalRoute;
|
229
257
|
};
|
258
|
+
export {
|
259
|
+
getRouteId,
|
260
|
+
optimizeRoute,
|
261
|
+
walk
|
262
|
+
};
|