@modern-js/app-tools 2.35.0 → 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 +69 -75
- package/dist/cjs/analyze/generateCode.js +77 -61
- 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 -33
- package/dist/cjs/analyze/getHtmlTemplate.js +45 -20
- package/dist/cjs/analyze/getServerRoutes.js +59 -34
- 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 +117 -65
- package/dist/cjs/analyze/templates.js +139 -57
- 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 +27 -11
- 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 +39 -38
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +58 -34
- 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 +43 -26
- 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 +34 -18
- 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 -10
- package/dist/cjs/commands/serve.js +49 -23
- 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 +196 -184
- 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 +49 -22
- package/dist/esm/analyze/generateCode.js +42 -37
- 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 +11 -9
- package/dist/esm/analyze/getHtmlTemplate.js +7 -4
- package/dist/esm/analyze/getServerRoutes.js +12 -10
- 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 +99 -30
- package/dist/esm/analyze/templates.js +125 -34
- 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 +5 -3
- package/dist/esm/builder/generator/getBuilderTargets.js +4 -1
- package/dist/esm/builder/generator/index.js +5 -2
- package/dist/esm/builder/index.js +5 -2
- package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +4 -1
- package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +23 -51
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +22 -21
- 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 +9 -6
- 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 +9 -6
- package/dist/esm/commands/deploy.js +4 -1
- package/dist/esm/commands/dev.js +12 -9
- package/dist/esm/commands/inspect.js +6 -3
- package/dist/esm/commands/serve.js +11 -8
- 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 +21 -14
- 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 +14 -8
- 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 +5 -2
- 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 +49 -22
- package/dist/esm-node/analyze/generateCode.js +11 -7
- 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 +5 -3
- package/dist/esm-node/analyze/getHtmlTemplate.js +4 -1
- package/dist/esm-node/analyze/getServerRoutes.js +8 -6
- 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 +49 -10
- package/dist/esm-node/analyze/templates.js +97 -22
- 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 +5 -3
- 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 +5 -2
- package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +4 -1
- package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +8 -20
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +16 -15
- 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 +6 -3
- 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 +6 -4
- 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 +5 -3
- package/dist/esm-node/commands/serve.js +8 -5
- 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 +140 -135
- 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 +12 -6
- 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 +5 -2
- 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 +2 -0
- package/dist/types/analyze/utils.d.ts +2 -1
- package/dist/types/builder/shared/bundlerPlugins/RouterPlugin.d.ts +1 -0
- package/dist/types/types/config/index.d.ts +3 -2
- package/package.json +24 -25
@@ -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,8 +69,8 @@ export const optimizeRoute = (routeTree) => {
|
|
69
69
|
];
|
70
70
|
}
|
71
71
|
};
|
72
|
-
|
73
|
-
var
|
72
|
+
const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldVersion) => {
|
73
|
+
var _finalRoute_children;
|
74
74
|
if (!await fs.pathExists(dirname)) {
|
75
75
|
return null;
|
76
76
|
}
|
@@ -90,17 +90,22 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
90
90
|
}
|
91
91
|
routePath = replaceDynamicPath(routePath);
|
92
92
|
const route = {
|
93
|
-
path:
|
93
|
+
path: routePath === null || routePath === void 0 ? void 0 : routePath.replace(/\$$/, "?"),
|
94
94
|
children: [],
|
95
95
|
isRoot
|
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 = "";
|
104
|
+
let splatRoute = null;
|
105
|
+
let splatConfigFile = "";
|
100
106
|
let splatClientData = "";
|
101
107
|
let splatData = "";
|
102
|
-
let
|
103
|
-
let pageConfigFile = "";
|
108
|
+
let splatAction = "";
|
104
109
|
const items = await fs.readdir(dirname);
|
105
110
|
for (const item of items) {
|
106
111
|
const itemPath = path.join(dirname, item);
|
@@ -127,6 +132,9 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
127
132
|
}
|
128
133
|
if (itemWithoutExt === NESTED_ROUTE.LAYOUT_DATA_FILE) {
|
129
134
|
route.data = itemPath;
|
135
|
+
if (await hasAction(itemPath)) {
|
136
|
+
route.action = itemPath;
|
137
|
+
}
|
130
138
|
}
|
131
139
|
if (itemWithoutExt === NESTED_ROUTE.LAYOUT_CONFIG_FILE) {
|
132
140
|
if (!route.config) {
|
@@ -140,10 +148,13 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
140
148
|
pageLoaderFile = itemPath;
|
141
149
|
}
|
142
150
|
if (itemWithoutExt === NESTED_ROUTE.PAGE_CLIENT_LOADER) {
|
143
|
-
|
151
|
+
pageClientData = itemPath;
|
144
152
|
}
|
145
153
|
if (itemWithoutExt === NESTED_ROUTE.PAGE_DATA_FILE) {
|
146
|
-
|
154
|
+
pageData = itemPath;
|
155
|
+
if (await hasAction(itemPath)) {
|
156
|
+
pageAction = itemPath;
|
157
|
+
}
|
147
158
|
}
|
148
159
|
if (itemWithoutExt === NESTED_ROUTE.PAGE_CONFIG_FILE) {
|
149
160
|
pageConfigFile = itemPath;
|
@@ -159,6 +170,15 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
159
170
|
if (pageConfigFile) {
|
160
171
|
pageRoute.config = pageConfigFile;
|
161
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
|
+
}
|
162
182
|
(_route_children1 = route.children) === null || _route_children1 === void 0 ? void 0 : _route_children1.push(pageRoute);
|
163
183
|
}
|
164
184
|
if (itemWithoutExt === NESTED_ROUTE.SPLATE_LOADER_FILE) {
|
@@ -167,8 +187,16 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
167
187
|
if (itemWithoutExt === NESTED_ROUTE.SPLATE_CLIENT_DATA) {
|
168
188
|
splatClientData = itemPath;
|
169
189
|
}
|
190
|
+
if (itemWithoutExt === NESTED_ROUTE.SPLATE_CONFIG_FILE) {
|
191
|
+
if (!route.config) {
|
192
|
+
splatConfigFile = itemPath;
|
193
|
+
}
|
194
|
+
}
|
170
195
|
if (itemWithoutExt === NESTED_ROUTE.SPLATE_DATA_FILE) {
|
171
196
|
splatData = itemPath;
|
197
|
+
if (await hasAction(itemPath)) {
|
198
|
+
splatAction = itemPath;
|
199
|
+
}
|
172
200
|
}
|
173
201
|
if (itemWithoutExt === NESTED_ROUTE.SPLATE_FILE) {
|
174
202
|
var _route_children2;
|
@@ -185,6 +213,12 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
185
213
|
if (splatData) {
|
186
214
|
splatRoute.data = splatData;
|
187
215
|
}
|
216
|
+
if (splatConfigFile) {
|
217
|
+
splatRoute.config = splatConfigFile;
|
218
|
+
}
|
219
|
+
if (splatAction) {
|
220
|
+
splatRoute.action = splatAction;
|
221
|
+
}
|
188
222
|
(_route_children2 = route.children) === null || _route_children2 === void 0 ? void 0 : _route_children2.push(splatRoute);
|
189
223
|
}
|
190
224
|
if (itemWithoutExt === NESTED_ROUTE.LOADING_FILE) {
|
@@ -218,3 +252,8 @@ export const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldV
|
|
218
252
|
}
|
219
253
|
return finalRoute;
|
220
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,24 +71,42 @@ 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) {
|
79
|
-
var _route_children
|
80
|
-
children =
|
81
|
+
var _route_children;
|
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,25 +166,26 @@ 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
|
};
|
145
179
|
const traverseRouteTree = (route) => {
|
146
180
|
let children;
|
147
181
|
if ("children" in route && route.children) {
|
148
|
-
var _route_children
|
149
|
-
children =
|
182
|
+
var _route_children;
|
183
|
+
children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
|
150
184
|
}
|
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
|
+
};
|
@@ -3,8 +3,8 @@ import path from "path";
|
|
3
3
|
import { isReact18, normalizeToPosixPath, fs as fse, getCommand } from "@modern-js/utils";
|
4
4
|
import { transform } from "esbuild";
|
5
5
|
import { parse } from "es-module-lexer";
|
6
|
-
import { FILE_SYSTEM_ROUTES_FILE_NAME, JS_EXTENSIONS, LOADER_EXPORT_NAME } from "./constants";
|
7
|
-
|
6
|
+
import { ACTION_EXPORT_NAME, FILE_SYSTEM_ROUTES_FILE_NAME, JS_EXTENSIONS, LOADER_EXPORT_NAME } from "./constants";
|
7
|
+
const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, filename) => {
|
8
8
|
const filePath = path.join(dir, filename);
|
9
9
|
if (fs.statSync(filePath).isDirectory()) {
|
10
10
|
return [
|
@@ -18,7 +18,7 @@ export const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, file
|
|
18
18
|
];
|
19
19
|
}
|
20
20
|
}, []);
|
21
|
-
|
21
|
+
const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias, internalDirAlias, internalDirectory }) => {
|
22
22
|
const { entryName, fileSystemRoutes, customBootstrap, entry } = entrypoint;
|
23
23
|
const imports = [
|
24
24
|
{
|
@@ -91,7 +91,7 @@ export const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias,
|
|
91
91
|
}
|
92
92
|
return imports;
|
93
93
|
};
|
94
|
-
|
94
|
+
const isPageComponentFile = (filePath) => {
|
95
95
|
if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
|
96
96
|
return false;
|
97
97
|
}
|
@@ -105,14 +105,14 @@ export const isPageComponentFile = (filePath) => {
|
|
105
105
|
}
|
106
106
|
return false;
|
107
107
|
};
|
108
|
-
|
108
|
+
const replaceWithAlias = (base, filePath, alias) => {
|
109
109
|
if (filePath.includes(base)) {
|
110
110
|
return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
|
111
111
|
} else {
|
112
112
|
return filePath;
|
113
113
|
}
|
114
114
|
};
|
115
|
-
|
115
|
+
const parseModule = async ({ source, filename }) => {
|
116
116
|
let content = source;
|
117
117
|
if (JS_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
|
118
118
|
const result = await transform(content, {
|
@@ -123,21 +123,41 @@ export const parseModule = async ({ source, filename }) => {
|
|
123
123
|
}
|
124
124
|
return await parse(content);
|
125
125
|
};
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
126
|
+
const hasLoader = async (filename, source) => {
|
127
|
+
let content = source;
|
128
|
+
if (!source) {
|
129
|
+
content = (await fse.readFile(filename, "utf-8")).toString();
|
130
|
+
}
|
131
|
+
if (content) {
|
132
|
+
const [, moduleExports] = await parseModule({
|
133
|
+
source: content.toString(),
|
134
|
+
filename
|
135
|
+
});
|
136
|
+
return moduleExports.some((e) => e.n === LOADER_EXPORT_NAME);
|
137
|
+
}
|
138
|
+
return false;
|
139
|
+
};
|
140
|
+
const hasAction = async (filename, source) => {
|
141
|
+
let content = source;
|
142
|
+
if (!source) {
|
143
|
+
content = (await fse.readFile(filename, "utf-8")).toString();
|
144
|
+
}
|
145
|
+
if (content) {
|
146
|
+
const [, moduleExports] = await parseModule({
|
147
|
+
source: content.toString(),
|
148
|
+
filename
|
149
|
+
});
|
150
|
+
return moduleExports.some((e) => e.n === ACTION_EXPORT_NAME);
|
151
|
+
}
|
152
|
+
return false;
|
133
153
|
};
|
134
|
-
|
154
|
+
const getServerLoadersFile = (internalDirectory, entryName) => {
|
135
155
|
return path.join(internalDirectory, entryName, "route-server-loaders.js");
|
136
156
|
};
|
137
|
-
|
157
|
+
const getServerCombinedModueFile = (internalDirectory, entryName) => {
|
138
158
|
return path.join(internalDirectory, entryName, "server-loader-combined.js");
|
139
159
|
};
|
140
|
-
|
160
|
+
const checkIsBuildCommands = () => {
|
141
161
|
const buildCommands = [
|
142
162
|
"dev",
|
143
163
|
"start",
|
@@ -149,3 +169,15 @@ export const checkIsBuildCommands = () => {
|
|
149
169
|
const command = getCommand();
|
150
170
|
return buildCommands.includes(command);
|
151
171
|
};
|
172
|
+
export {
|
173
|
+
checkIsBuildCommands,
|
174
|
+
getDefaultImports,
|
175
|
+
getServerCombinedModueFile,
|
176
|
+
getServerLoadersFile,
|
177
|
+
hasAction,
|
178
|
+
hasLoader,
|
179
|
+
isPageComponentFile,
|
180
|
+
parseModule,
|
181
|
+
replaceWithAlias,
|
182
|
+
walkDirectory
|
183
|
+
};
|
@@ -2,7 +2,7 @@ import path from "path";
|
|
2
2
|
import fs from "@modern-js/utils/fs-extra";
|
3
3
|
import { logger, removeTailSlash } from "@modern-js/utils";
|
4
4
|
import { createCopyInfo } from "../shared";
|
5
|
-
|
5
|
+
const builderPluginAdpaterCopy = (options) => ({
|
6
6
|
name: "builder-plugin-adapter-rspack-copy",
|
7
7
|
setup(api) {
|
8
8
|
let publicPath;
|
@@ -58,3 +58,6 @@ function createConfigBuiltinCopy(options) {
|
|
58
58
|
}
|
59
59
|
];
|
60
60
|
}
|
61
|
+
export {
|
62
|
+
builderPluginAdpaterCopy
|
63
|
+
};
|
@@ -1,10 +1,13 @@
|
|
1
1
|
import { builderRspackProvider } from "@modern-js/builder-rspack-provider";
|
2
2
|
import { generateBuilder } from "../generator";
|
3
3
|
import { builderPluginAdpaterCopy } from "./adapterCopy";
|
4
|
-
|
4
|
+
async function createRspackBuilderForModern(options) {
|
5
5
|
const builder = await generateBuilder(options, builderRspackProvider);
|
6
6
|
builder.addPlugins([
|
7
7
|
builderPluginAdpaterCopy(options)
|
8
8
|
]);
|
9
9
|
return builder;
|
10
10
|
}
|
11
|
+
export {
|
12
|
+
createRspackBuilderForModern
|
13
|
+
};
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { join } from "path";
|
2
2
|
import { createPublicPattern } from "./createCopyPattern";
|
3
|
-
|
3
|
+
const builderPluginAdapterModern = (options) => ({
|
4
4
|
name: "builder-plugin-adapter-modern",
|
5
5
|
setup(api) {
|
6
6
|
const { normalizedConfig: modernConfig, appContext } = options;
|
@@ -23,3 +23,6 @@ export const builderPluginAdapterModern = (options) => ({
|
|
23
23
|
});
|
24
24
|
}
|
25
25
|
});
|
26
|
+
export {
|
27
|
+
builderPluginAdapterModern
|
28
|
+
};
|
@@ -7,7 +7,7 @@ const info = (file) => ({
|
|
7
7
|
// ref: https://github.com/webpack-contrib/copy-webpack-plugin#info
|
8
8
|
minimized: minifiedJsRexExp.test(file.sourceFilename)
|
9
9
|
});
|
10
|
-
|
10
|
+
function createPublicPattern(appContext, config, chain) {
|
11
11
|
const { publicDir } = createCopyInfo(appContext, config);
|
12
12
|
return {
|
13
13
|
info,
|
@@ -24,7 +24,7 @@ export function createPublicPattern(appContext, config, chain) {
|
|
24
24
|
}
|
25
25
|
};
|
26
26
|
}
|
27
|
-
|
27
|
+
function createUploadPattern(appContext, config) {
|
28
28
|
const { uploadDir } = createCopyInfo(appContext, config);
|
29
29
|
return {
|
30
30
|
info,
|
@@ -34,3 +34,7 @@ export function createUploadPattern(appContext, config) {
|
|
34
34
|
noErrorOnMissing: true
|
35
35
|
};
|
36
36
|
}
|
37
|
+
export {
|
38
|
+
createPublicPattern,
|
39
|
+
createUploadPattern
|
40
|
+
};
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { builderWebpackProvider } from "@modern-js/builder-webpack-provider";
|
2
2
|
import { generateBuilder } from "../generator";
|
3
3
|
import { builderPluginAdapterModern } from "./adapterModern";
|
4
|
-
|
4
|
+
async function createWebpackBuilderForModern(options) {
|
5
5
|
const builder = await generateBuilder(options, builderWebpackProvider);
|
6
6
|
const { normalizedConfig } = options;
|
7
7
|
if (normalizedConfig.tools.esbuild) {
|
@@ -16,3 +16,6 @@ export async function createWebpackBuilderForModern(options) {
|
|
16
16
|
]);
|
17
17
|
return builder;
|
18
18
|
}
|
19
|
+
export {
|
20
|
+
createWebpackBuilderForModern
|
21
|
+
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
function createBuilderOptions(target, appContext) {
|
2
2
|
const entries = {};
|
3
3
|
const { entrypoints = [], checkedEntries } = appContext;
|
4
4
|
for (const { entryName, internalEntry, entry } of entrypoints) {
|
@@ -22,3 +22,6 @@ export function createBuilderOptions(target, appContext) {
|
|
22
22
|
framework: appContext.metaName
|
23
23
|
};
|
24
24
|
}
|
25
|
+
export {
|
26
|
+
createBuilderOptions
|
27
|
+
};
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import { createUploadPattern } from "../builder-webpack/createCopyPattern";
|
2
2
|
function modifyOutputConfig(config, appContext) {
|
3
|
-
var _copy;
|
4
3
|
const defaultCopyPattern = createUploadPattern(appContext, config);
|
5
4
|
const { copy } = config.output;
|
6
|
-
const copyOptions = Array.isArray(copy) ? copy :
|
5
|
+
const copyOptions = Array.isArray(copy) ? copy : copy === null || copy === void 0 ? void 0 : copy.patterns;
|
7
6
|
const builderCopy = [
|
8
7
|
...copyOptions || [],
|
9
8
|
defaultCopyPattern
|
@@ -13,7 +12,7 @@ function modifyOutputConfig(config, appContext) {
|
|
13
12
|
copy: builderCopy
|
14
13
|
};
|
15
14
|
}
|
16
|
-
|
15
|
+
function createBuilderProviderConfig(resolveConfig, appContext) {
|
17
16
|
const htmlConfig = {
|
18
17
|
...resolveConfig.html
|
19
18
|
};
|
@@ -39,3 +38,6 @@ export function createBuilderProviderConfig(resolveConfig, appContext) {
|
|
39
38
|
modifyOutputConfig(config, appContext);
|
40
39
|
return config;
|
41
40
|
}
|
41
|
+
export {
|
42
|
+
createBuilderProviderConfig
|
43
|
+
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { isProd, isServiceWorker, isSSR, isUseSSRBundle } from "@modern-js/utils";
|
2
|
-
|
2
|
+
function getBuilderTargets(normalizedConfig) {
|
3
3
|
const targets = [
|
4
4
|
"web"
|
5
5
|
];
|
@@ -13,3 +13,6 @@ export function getBuilderTargets(normalizedConfig) {
|
|
13
13
|
}
|
14
14
|
return targets;
|
15
15
|
}
|
16
|
+
export {
|
17
|
+
getBuilderTargets
|
18
|
+
};
|
@@ -2,7 +2,7 @@ import { createBuilder } from "@modern-js/builder";
|
|
2
2
|
import { createBuilderProviderConfig } from "./createBuilderProviderConfig";
|
3
3
|
import { getBuilderTargets } from "./getBuilderTargets";
|
4
4
|
import { createBuilderOptions } from "./createBuilderOptions";
|
5
|
-
|
5
|
+
async function generateBuilder(options, generateProvider) {
|
6
6
|
const { normalizedConfig, appContext } = options;
|
7
7
|
const builderConfig = createBuilderProviderConfig(normalizedConfig, appContext);
|
8
8
|
const provider = generateProvider({
|
@@ -29,3 +29,6 @@ async function applyBuilderPlugins(builder, options) {
|
|
29
29
|
]);
|
30
30
|
}
|
31
31
|
}
|
32
|
+
export {
|
33
|
+
generateBuilder
|
34
|
+
};
|