@modern-js/app-tools 2.35.1 → 2.35.2-alpha.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 +77 -55
- package/dist/cjs/analyze/isDefaultExportFunction.js +42 -17
- package/dist/cjs/analyze/makeLegalIdentifier.js +24 -7
- package/dist/cjs/analyze/nestedRoutes.js +108 -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 +46 -20
- package/dist/cjs/builder/builder-rspack/index.js +29 -12
- package/dist/cjs/builder/builder-webpack/adapterModern.js +28 -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 +34 -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 +44 -25
- 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 +27 -24
- package/dist/esm/analyze/isDefaultExportFunction.js +4 -1
- package/dist/esm/analyze/makeLegalIdentifier.js +4 -1
- package/dist/esm/analyze/nestedRoutes.js +90 -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 +4 -1
- package/dist/esm/builder/builder-rspack/index.js +4 -1
- package/dist/esm/builder/builder-webpack/adapterModern.js +4 -1
- 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 +4 -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 +6 -2
- 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 +4 -1
- 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 +39 -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 +4 -1
- package/dist/esm-node/builder/builder-rspack/index.js +4 -1
- package/dist/esm-node/builder/builder-webpack/adapterModern.js +4 -1
- 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 +4 -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 +6 -2
- 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/js/modern/analyze/constants.js +54 -0
- package/dist/js/modern/analyze/generateCode.js +247 -0
- package/dist/js/modern/analyze/getBundleEntry.js +71 -0
- package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +220 -0
- package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +216 -0
- package/dist/js/modern/analyze/getClientRoutes/index.js +6 -0
- package/dist/js/modern/analyze/getClientRoutes/utils.js +31 -0
- package/dist/js/modern/analyze/getFileSystemEntry.js +109 -0
- package/dist/js/modern/analyze/getHtmlTemplate.js +115 -0
- package/dist/js/modern/analyze/getServerRoutes.js +175 -0
- package/dist/js/modern/analyze/index.js +332 -0
- package/dist/js/modern/analyze/isDefaultExportFunction.js +42 -0
- package/dist/js/modern/analyze/makeLegalIdentifier.js +13 -0
- package/dist/js/modern/analyze/nestedRoutes.js +157 -0
- package/dist/js/modern/analyze/templates.js +334 -0
- package/dist/js/modern/analyze/utils.js +141 -0
- package/dist/js/modern/builder/builderPlugins/compatModern.js +233 -0
- package/dist/js/modern/builder/index.js +159 -0
- package/dist/js/modern/builder/loaders/routerLoader.js +17 -0
- package/dist/js/modern/builder/loaders/serverModuleLoader.js +7 -0
- package/dist/js/modern/builder/share.js +46 -0
- package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +30 -0
- package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +37 -0
- package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +113 -0
- package/dist/js/modern/commands/build.js +91 -0
- package/dist/js/modern/commands/deploy.js +28 -0
- package/dist/js/modern/commands/dev.js +109 -0
- package/dist/js/modern/commands/index.js +3 -0
- package/dist/js/modern/commands/inspect.js +38 -0
- package/dist/js/modern/commands/serve.js +54 -0
- package/dist/js/modern/config/default.js +175 -0
- package/dist/js/modern/config/index.js +8 -0
- package/dist/js/modern/config/initial/createHtmlConfig.js +35 -0
- package/dist/js/modern/config/initial/createOutputConfig.js +68 -0
- package/dist/js/modern/config/initial/createSourceConfig.js +39 -0
- package/dist/js/modern/config/initial/createToolsConfig.js +42 -0
- package/dist/js/modern/config/initial/index.js +16 -0
- package/dist/js/modern/config/initial/inits.js +152 -0
- package/dist/js/modern/config/initial/transformNormalizedConfig.js +47 -0
- package/dist/js/modern/defineConfig.js +27 -0
- package/dist/js/modern/exports/server.js +4 -0
- package/dist/js/modern/hooks.js +35 -0
- package/dist/js/modern/index.js +211 -0
- package/dist/js/modern/initialize/index.js +124 -0
- package/dist/js/modern/locale/en.js +36 -0
- package/dist/js/modern/locale/index.js +9 -0
- package/dist/js/modern/locale/zh.js +36 -0
- package/dist/js/modern/schema/Schema.js +40 -0
- package/dist/js/modern/schema/index.js +88 -0
- package/dist/js/modern/schema/legacy.js +148 -0
- package/dist/js/modern/types/config/deploy.js +0 -0
- package/dist/js/modern/types/config/dev.js +0 -0
- package/dist/js/modern/types/config/experiments.js +0 -0
- package/dist/js/modern/types/config/html.js +0 -0
- package/dist/js/modern/types/config/index.js +1 -0
- package/dist/js/modern/types/config/output.js +0 -0
- package/dist/js/modern/types/config/performance.js +0 -0
- package/dist/js/modern/types/config/security.js +0 -0
- package/dist/js/modern/types/config/source.js +0 -0
- package/dist/js/modern/types/config/tools.js +0 -0
- package/dist/js/modern/types/hooks.js +0 -0
- package/dist/js/modern/types/index.js +3 -0
- package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
- package/dist/js/modern/types/legacyConfig/dev.js +0 -0
- package/dist/js/modern/types/legacyConfig/index.js +0 -0
- package/dist/js/modern/types/legacyConfig/output.js +0 -0
- package/dist/js/modern/types/legacyConfig/source.js +0 -0
- package/dist/js/modern/types/legacyConfig/tools.js +0 -0
- package/dist/js/modern/utils/config.js +128 -0
- package/dist/js/modern/utils/createServer.js +75 -0
- package/dist/js/modern/utils/env.js +15 -0
- package/dist/js/modern/utils/generateWatchFiles.js +55 -0
- package/dist/js/modern/utils/getSelectedEntries.js +58 -0
- package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
- package/dist/js/modern/utils/language.js +8 -0
- package/dist/js/modern/utils/printInstructions.js +31 -0
- package/dist/js/modern/utils/restart.js +44 -0
- package/dist/js/modern/utils/routes.js +30 -0
- package/dist/js/modern/utils/types.js +0 -0
- package/dist/js/node/analyze/constants.js +98 -0
- package/dist/js/node/analyze/generateCode.js +271 -0
- package/dist/js/node/analyze/getBundleEntry.js +95 -0
- package/dist/js/node/analyze/getClientRoutes/getRoutes.js +242 -0
- package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +238 -0
- package/dist/js/node/analyze/getClientRoutes/index.js +30 -0
- package/dist/js/node/analyze/getClientRoutes/utils.js +58 -0
- package/dist/js/node/analyze/getFileSystemEntry.js +131 -0
- package/dist/js/node/analyze/getHtmlTemplate.js +144 -0
- package/dist/js/node/analyze/getServerRoutes.js +194 -0
- package/dist/js/node/analyze/index.js +339 -0
- package/dist/js/node/analyze/isDefaultExportFunction.js +71 -0
- package/dist/js/node/analyze/makeLegalIdentifier.js +36 -0
- package/dist/js/node/analyze/nestedRoutes.js +184 -0
- package/dist/js/node/analyze/templates.js +365 -0
- package/dist/js/node/analyze/utils.js +172 -0
- package/dist/js/node/builder/builderPlugins/compatModern.js +258 -0
- package/dist/js/node/builder/index.js +177 -0
- package/dist/js/node/builder/loaders/routerLoader.js +38 -0
- package/dist/js/node/builder/loaders/serverModuleLoader.js +28 -0
- package/dist/js/node/builder/share.js +75 -0
- package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +53 -0
- package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +60 -0
- package/dist/js/node/builder/webpackPlugins/routerPlugin.js +135 -0
- package/dist/js/node/commands/build.js +112 -0
- package/dist/js/node/commands/deploy.js +51 -0
- package/dist/js/node/commands/dev.js +126 -0
- package/dist/js/node/commands/index.js +19 -0
- package/dist/js/node/commands/inspect.js +61 -0
- package/dist/js/node/commands/serve.js +83 -0
- package/dist/js/node/config/default.js +197 -0
- package/dist/js/node/config/index.js +34 -0
- package/dist/js/node/config/initial/createHtmlConfig.js +58 -0
- package/dist/js/node/config/initial/createOutputConfig.js +91 -0
- package/dist/js/node/config/initial/createSourceConfig.js +62 -0
- package/dist/js/node/config/initial/createToolsConfig.js +65 -0
- package/dist/js/node/config/initial/index.js +41 -0
- package/dist/js/node/config/initial/inits.js +175 -0
- package/dist/js/node/config/initial/transformNormalizedConfig.js +70 -0
- package/dist/js/node/defineConfig.js +49 -0
- package/dist/js/node/exports/server.js +27 -0
- package/dist/js/node/hooks.js +54 -0
- package/dist/js/node/index.js +235 -0
- package/dist/js/node/initialize/index.js +134 -0
- package/dist/js/node/locale/en.js +59 -0
- package/dist/js/node/locale/index.js +33 -0
- package/dist/js/node/locale/zh.js +59 -0
- package/dist/js/node/schema/Schema.js +63 -0
- package/dist/js/node/schema/index.js +118 -0
- package/dist/js/node/schema/legacy.js +169 -0
- 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 -0
- 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 -0
- 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 -0
- 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/config.js +153 -0
- package/dist/js/node/utils/createServer.js +106 -0
- package/dist/js/node/utils/env.js +38 -0
- package/dist/js/node/utils/generateWatchFiles.js +85 -0
- package/dist/js/node/utils/getSelectedEntries.js +81 -0
- package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
- package/dist/js/node/utils/language.js +31 -0
- package/dist/js/node/utils/printInstructions.js +54 -0
- package/dist/js/node/utils/restart.js +67 -0
- package/dist/js/node/utils/routes.js +59 -0
- package/dist/js/node/utils/types.js +15 -0
- package/dist/js/treeshaking/analyze/constants.js +40 -0
- package/dist/js/treeshaking/analyze/generateCode.js +485 -0
- package/dist/js/treeshaking/analyze/getBundleEntry.js +62 -0
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +233 -0
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +231 -0
- package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -0
- package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +23 -0
- package/dist/js/treeshaking/analyze/getFileSystemEntry.js +107 -0
- package/dist/js/treeshaking/analyze/getHtmlTemplate.js +302 -0
- package/dist/js/treeshaking/analyze/getServerRoutes.js +222 -0
- package/dist/js/treeshaking/analyze/index.js +697 -0
- package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +47 -0
- package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -0
- package/dist/js/treeshaking/analyze/nestedRoutes.js +384 -0
- package/dist/js/treeshaking/analyze/templates.js +468 -0
- package/dist/js/treeshaking/analyze/utils.js +374 -0
- package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +304 -0
- package/dist/js/treeshaking/builder/index.js +374 -0
- package/dist/js/treeshaking/builder/loaders/routerLoader.js +13 -0
- package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +5 -0
- package/dist/js/treeshaking/builder/share.js +40 -0
- package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +110 -0
- package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +72 -0
- package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +343 -0
- package/dist/js/treeshaking/commands/build.js +291 -0
- package/dist/js/treeshaking/commands/deploy.js +154 -0
- package/dist/js/treeshaking/commands/dev.js +301 -0
- package/dist/js/treeshaking/commands/index.js +3 -0
- package/dist/js/treeshaking/commands/inspect.js +149 -0
- package/dist/js/treeshaking/commands/serve.js +199 -0
- package/dist/js/treeshaking/config/default.js +210 -0
- package/dist/js/treeshaking/config/index.js +3 -0
- package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -0
- package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -0
- package/dist/js/treeshaking/config/initial/createSourceConfig.js +42 -0
- package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -0
- package/dist/js/treeshaking/config/initial/index.js +12 -0
- package/dist/js/treeshaking/config/initial/inits.js +209 -0
- package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +35 -0
- package/dist/js/treeshaking/defineConfig.js +61 -0
- package/dist/js/treeshaking/exports/server.js +2 -0
- package/dist/js/treeshaking/hooks.js +29 -0
- package/dist/js/treeshaking/index.js +706 -0
- package/dist/js/treeshaking/initialize/index.js +276 -0
- package/dist/js/treeshaking/locale/en.js +38 -0
- package/dist/js/treeshaking/locale/index.js +9 -0
- package/dist/js/treeshaking/locale/zh.js +38 -0
- package/dist/js/treeshaking/schema/Schema.js +273 -0
- package/dist/js/treeshaking/schema/index.js +181 -0
- package/dist/js/treeshaking/schema/legacy.js +337 -0
- 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 +1 -0
- 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 +3 -0
- 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 -0
- 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/config.js +302 -0
- package/dist/js/treeshaking/utils/createServer.js +258 -0
- package/dist/js/treeshaking/utils/env.js +13 -0
- package/dist/js/treeshaking/utils/generateWatchFiles.js +214 -0
- package/dist/js/treeshaking/utils/getSelectedEntries.js +186 -0
- package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
- package/dist/js/treeshaking/utils/language.js +6 -0
- package/dist/js/treeshaking/utils/printInstructions.js +152 -0
- package/dist/js/treeshaking/utils/restart.js +187 -0
- package/dist/js/treeshaking/utils/routes.js +153 -0
- package/dist/js/treeshaking/utils/types.js +1 -0
- 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 +12 -12
|
@@ -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 = [];
|
|
@@ -240,3 +240,6 @@ export default ({ bundler }) => ({
|
|
|
240
240
|
};
|
|
241
241
|
}
|
|
242
242
|
});
|
|
243
|
+
export {
|
|
244
|
+
analyze_default as default
|
|
245
|
+
};
|
|
@@ -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) {
|
|
@@ -227,3 +252,8 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
|
227
252
|
}
|
|
228
253
|
return finalRoute;
|
|
229
254
|
};
|
|
255
|
+
export {
|
|
256
|
+
getRouteId,
|
|
257
|
+
optimizeRoute,
|
|
258
|
+
walk
|
|
259
|
+
};
|
|
@@ -2,7 +2,7 @@ import path from "path";
|
|
|
2
2
|
import { fs, getEntryOptions, isSSGEntry, slash } from "@modern-js/utils";
|
|
3
3
|
import { APP_CONFIG_NAME, TEMP_LOADERS_DIR } from "./constants";
|
|
4
4
|
import { getServerLoadersFile } from "./utils";
|
|
5
|
-
|
|
5
|
+
const index = ({ mountId, imports, renderFunction: renderFunction2, exportStatement }) => `
|
|
6
6
|
const IS_BROWSER = typeof window !== 'undefined' && window.name !== 'nodejs';
|
|
7
7
|
const IS_REACT18 = process.env.IS_REACT18 === 'true';
|
|
8
8
|
const MOUNT_ID = '${mountId}';
|
|
@@ -21,7 +21,7 @@ AppWrapper = render();
|
|
|
21
21
|
|
|
22
22
|
${exportStatement};
|
|
23
23
|
`;
|
|
24
|
-
|
|
24
|
+
const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fileSystemRoutes2 }) => {
|
|
25
25
|
const bootstrap = "bootstrap(AppWrapper, MOUNT_ID, root, ReactDOM)";
|
|
26
26
|
return `
|
|
27
27
|
const finalAppConfig = {
|
|
@@ -48,7 +48,7 @@ export const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fil
|
|
|
48
48
|
return AppWrapper
|
|
49
49
|
`;
|
|
50
50
|
};
|
|
51
|
-
|
|
51
|
+
const html = (partials) => `
|
|
52
52
|
<!DOCTYPE html>
|
|
53
53
|
<html>
|
|
54
54
|
<head>
|
|
@@ -71,8 +71,10 @@ export const html = (partials) => `
|
|
|
71
71
|
|
|
72
72
|
</html>
|
|
73
73
|
`;
|
|
74
|
-
|
|
74
|
+
const routesForServer = ({ routes }) => {
|
|
75
75
|
const loaders = [];
|
|
76
|
+
const actions = [];
|
|
77
|
+
const loadersMap = {};
|
|
76
78
|
const traverseRouteTree = (route) => {
|
|
77
79
|
let children;
|
|
78
80
|
if ("children" in route && route.children) {
|
|
@@ -80,15 +82,31 @@ export const routesForServer = ({ routes }) => {
|
|
|
80
82
|
children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
|
|
81
83
|
}
|
|
82
84
|
let loader;
|
|
85
|
+
let action;
|
|
83
86
|
if (route.type === "nested") {
|
|
84
|
-
if (route.loader) {
|
|
87
|
+
if (route.loader || route.data) {
|
|
85
88
|
loaders.push(route.loader);
|
|
86
|
-
|
|
89
|
+
const loaderId = loaders.length - 1;
|
|
90
|
+
loader = `loader_${loaderId}`;
|
|
91
|
+
const inline = Boolean(route.data);
|
|
92
|
+
loadersMap[loader] = {
|
|
93
|
+
loaderId,
|
|
94
|
+
routeId: route.id,
|
|
95
|
+
filePath: route.data || route.loader,
|
|
96
|
+
clientData: Boolean(route.clientData),
|
|
97
|
+
route,
|
|
98
|
+
inline
|
|
99
|
+
};
|
|
100
|
+
if (route.action) {
|
|
101
|
+
actions.push(route.action);
|
|
102
|
+
action = `action_${loaders.length - 1}`;
|
|
103
|
+
}
|
|
87
104
|
}
|
|
88
105
|
}
|
|
89
106
|
const finalRoute = {
|
|
90
107
|
...route,
|
|
91
108
|
loader,
|
|
109
|
+
action,
|
|
92
110
|
children
|
|
93
111
|
};
|
|
94
112
|
return finalRoute;
|
|
@@ -98,8 +116,14 @@ export const routesForServer = ({ routes }) => {
|
|
|
98
116
|
`;
|
|
99
117
|
for (const route of routes) {
|
|
100
118
|
if ("type" in route) {
|
|
119
|
+
const keywords = [
|
|
120
|
+
"loader",
|
|
121
|
+
"action"
|
|
122
|
+
];
|
|
123
|
+
const regs = keywords.map(createMatchReg);
|
|
101
124
|
const newRoute = traverseRouteTree(route);
|
|
102
|
-
|
|
125
|
+
const routeStr = JSON.stringify(newRoute, null, 2);
|
|
126
|
+
routesCode += regs.reduce((acc, reg) => acc.replace(reg, "$1$2"), routeStr).replace(/\\"/g, '"');
|
|
103
127
|
} else {
|
|
104
128
|
routesCode += `${JSON.stringify(route, null, 2)}`;
|
|
105
129
|
}
|
|
@@ -107,10 +131,20 @@ export const routesForServer = ({ routes }) => {
|
|
|
107
131
|
routesCode += `
|
|
108
132
|
];`;
|
|
109
133
|
let importLoadersCode = "";
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
134
|
+
for (const [key, loaderInfo] of Object.entries(loadersMap)) {
|
|
135
|
+
if (loaderInfo.inline) {
|
|
136
|
+
const { route } = loaderInfo;
|
|
137
|
+
if (route.action) {
|
|
138
|
+
importLoadersCode += `import { loader as ${key}, action as action_${loaderInfo.loaderId} } from "${slash(loaderInfo.filePath)}";
|
|
139
|
+
`;
|
|
140
|
+
} else {
|
|
141
|
+
importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}";
|
|
142
|
+
`;
|
|
143
|
+
}
|
|
144
|
+
} else {
|
|
145
|
+
importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}";
|
|
146
|
+
`;
|
|
147
|
+
}
|
|
114
148
|
}
|
|
115
149
|
return `
|
|
116
150
|
${importLoadersCode}
|
|
@@ -118,7 +152,7 @@ export const routesForServer = ({ routes }) => {
|
|
|
118
152
|
`;
|
|
119
153
|
};
|
|
120
154
|
const createMatchReg = (keyword) => new RegExp(`("${keyword}":\\s)"([^,]+)"`, "g");
|
|
121
|
-
|
|
155
|
+
const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true }) => {
|
|
122
156
|
const components = [];
|
|
123
157
|
const loadings = [];
|
|
124
158
|
const errors = [];
|
|
@@ -132,13 +166,13 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
|
132
166
|
import loadable, { lazy as loadableLazy } from "@modern-js/runtime/loadable"
|
|
133
167
|
`;
|
|
134
168
|
let rootLayoutCode = ``;
|
|
135
|
-
const getDataLoaderPath = (loaderId, clientData) => {
|
|
169
|
+
const getDataLoaderPath = ({ loaderId, clientData, action, inline, routeId }) => {
|
|
136
170
|
if (!ssrMode) {
|
|
137
171
|
return "";
|
|
138
172
|
}
|
|
139
173
|
const clientDataStr = clientData ? `&clientData=${clientData}` : "";
|
|
140
174
|
if (nestedRoutesEntry) {
|
|
141
|
-
return `?
|
|
175
|
+
return `?loaderId=${loaderId}${clientDataStr}&action=${action}&inline=${inline}&routeId=${routeId}`;
|
|
142
176
|
}
|
|
143
177
|
return "";
|
|
144
178
|
};
|
|
@@ -151,6 +185,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
|
151
185
|
let loading;
|
|
152
186
|
let error;
|
|
153
187
|
let loader;
|
|
188
|
+
let action;
|
|
154
189
|
let config;
|
|
155
190
|
let component = "";
|
|
156
191
|
let lazyImport = null;
|
|
@@ -167,13 +202,19 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
|
167
202
|
loaders.push(route.loader);
|
|
168
203
|
const loaderId = loaders.length - 1;
|
|
169
204
|
loader = `loader_${loaderId}`;
|
|
205
|
+
const inline = Boolean(route.data);
|
|
170
206
|
loadersMap[loader] = {
|
|
207
|
+
loaderId,
|
|
171
208
|
routeId: route.id,
|
|
172
209
|
filePath: route.data || route.loader,
|
|
173
210
|
clientData: Boolean(route.clientData),
|
|
174
|
-
|
|
211
|
+
route,
|
|
212
|
+
inline
|
|
175
213
|
};
|
|
176
214
|
loader = `loader_${loaderId}`;
|
|
215
|
+
if (route.action) {
|
|
216
|
+
action = `action_${loaderId}`;
|
|
217
|
+
}
|
|
177
218
|
}
|
|
178
219
|
if (typeof route.config === "string") {
|
|
179
220
|
configs.push(route.config);
|
|
@@ -212,6 +253,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
|
212
253
|
lazyImport,
|
|
213
254
|
loading,
|
|
214
255
|
loader,
|
|
256
|
+
action,
|
|
215
257
|
config,
|
|
216
258
|
error,
|
|
217
259
|
children
|
|
@@ -232,6 +274,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
|
232
274
|
"component",
|
|
233
275
|
"lazyImport",
|
|
234
276
|
"loader",
|
|
277
|
+
"action",
|
|
235
278
|
"loading",
|
|
236
279
|
"error",
|
|
237
280
|
"config"
|
|
@@ -272,10 +315,34 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
|
272
315
|
let importLoadersCode = "";
|
|
273
316
|
for (const [key, loaderInfo] of Object.entries(loadersMap)) {
|
|
274
317
|
if (loaderInfo.inline) {
|
|
275
|
-
|
|
318
|
+
const { route } = loaderInfo;
|
|
319
|
+
if (route.action) {
|
|
320
|
+
importLoadersCode += `import { loader as ${key}, action as action_${loaderInfo.loaderId} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
|
|
321
|
+
loaderId: key,
|
|
322
|
+
clientData: loaderInfo.clientData,
|
|
323
|
+
action: route.action,
|
|
324
|
+
inline: loaderInfo.inline,
|
|
325
|
+
routeId: loaderInfo.routeId
|
|
326
|
+
})}";
|
|
276
327
|
`;
|
|
328
|
+
} else {
|
|
329
|
+
importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
|
|
330
|
+
loaderId: key,
|
|
331
|
+
clientData: loaderInfo.clientData,
|
|
332
|
+
action: false,
|
|
333
|
+
inline: loaderInfo.inline,
|
|
334
|
+
routeId: route.id
|
|
335
|
+
})}";
|
|
336
|
+
`;
|
|
337
|
+
}
|
|
277
338
|
} else {
|
|
278
|
-
importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}${getDataLoaderPath(
|
|
339
|
+
importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
|
|
340
|
+
loaderId: key,
|
|
341
|
+
clientData: loaderInfo.clientData,
|
|
342
|
+
action: false,
|
|
343
|
+
inline: loaderInfo.inline,
|
|
344
|
+
routeId: loaderInfo.routeId
|
|
345
|
+
})}";
|
|
279
346
|
`;
|
|
280
347
|
}
|
|
281
348
|
}
|
|
@@ -297,7 +364,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
|
297
364
|
${routeComponentsCode}
|
|
298
365
|
`;
|
|
299
366
|
};
|
|
300
|
-
|
|
367
|
+
function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
|
|
301
368
|
const { entryName, isMainEntry } = entrypoint;
|
|
302
369
|
const { packageName, internalDirectory } = appContext;
|
|
303
370
|
const ssr = getEntryOptions(entryName, isMainEntry, config.server.ssr, config.server.ssrByEntries, packageName);
|
|
@@ -310,3 +377,11 @@ export function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appCont
|
|
|
310
377
|
}
|
|
311
378
|
return null;
|
|
312
379
|
}
|
|
380
|
+
export {
|
|
381
|
+
fileSystemRoutes,
|
|
382
|
+
html,
|
|
383
|
+
index,
|
|
384
|
+
renderFunction,
|
|
385
|
+
routesForServer,
|
|
386
|
+
ssrLoaderCombinedModule
|
|
387
|
+
};
|