@module-federation/modern-js 0.0.0-next-20241016083243 → 0.0.0-next-20241017102355

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.
Files changed (64) hide show
  1. package/dist/cjs/cli/index.js +5 -4
  2. package/dist/cjs/cli/routes/exportRoutePlugin.js +77 -0
  3. package/dist/cjs/cli/routes/importRoutesPlugin.js +120 -0
  4. package/dist/cjs/cli/routes/plugin.js +157 -0
  5. package/dist/cjs/cli/{dataLoader/generateRouteFile.js → routes/traverseRouteFiles.js} +12 -12
  6. package/dist/cjs/cli/{dataLoader/patchMFConfig.js → routes/utils.js} +18 -10
  7. package/dist/cjs/cli/server/{dataLoaderPlugin.js → fetchRoutePlugin.js} +7 -7
  8. package/dist/cjs/runtime/{dataLoader → routes}/plugin-inject-assets.js +3 -3
  9. package/dist/cjs/runtime/{dataLoader → routes}/plugin.js +1 -1
  10. package/dist/cjs/types/routes.js +16 -0
  11. package/dist/esm/cli/index.js +6 -4
  12. package/dist/esm/cli/routes/exportRoutePlugin.js +79 -0
  13. package/dist/esm/cli/routes/importRoutesPlugin.js +122 -0
  14. package/dist/esm/cli/{dataLoader → routes}/plugin.js +74 -149
  15. package/dist/esm/cli/{dataLoader/generateRouteFile.js → routes/traverseRouteFiles.js} +23 -18
  16. package/dist/esm/cli/{dataLoader/patchMFConfig.js → routes/utils.js} +12 -6
  17. package/dist/esm/cli/server/{dataLoaderPlugin.js → fetchRoutePlugin.js} +4 -4
  18. package/dist/esm/runtime/{dataLoader → routes}/plugin-inject-assets.js +3 -3
  19. package/dist/esm/runtime/{dataLoader → routes}/plugin.js +1 -1
  20. package/dist/esm/types/routes.js +0 -0
  21. package/dist/esm-node/cli/index.js +5 -4
  22. package/dist/esm-node/cli/routes/exportRoutePlugin.js +53 -0
  23. package/dist/esm-node/cli/routes/importRoutesPlugin.js +96 -0
  24. package/dist/esm-node/cli/routes/plugin.js +123 -0
  25. package/dist/esm-node/cli/{dataLoader/generateRouteFile.js → routes/traverseRouteFiles.js} +8 -8
  26. package/dist/esm-node/cli/{dataLoader/patchMFConfig.js → routes/utils.js} +13 -6
  27. package/dist/esm-node/cli/server/{dataLoaderPlugin.js → fetchRoutePlugin.js} +4 -4
  28. package/dist/esm-node/runtime/{dataLoader → routes}/plugin-inject-assets.js +3 -3
  29. package/dist/esm-node/runtime/{dataLoader → routes}/plugin.js +1 -1
  30. package/dist/esm-node/types/routes.js +0 -0
  31. package/dist/types/cli/routes/exportRoutePlugin.d.ts +4 -0
  32. package/dist/types/cli/routes/importRoutesPlugin.d.ts +4 -0
  33. package/dist/types/cli/routes/plugin.d.ts +4 -0
  34. package/dist/types/cli/{dataLoader/generateRouteFile.d.ts → routes/traverseRouteFiles.d.ts} +4 -3
  35. package/dist/types/cli/{dataLoader/patchMFConfig.d.ts → routes/utils.d.ts} +2 -1
  36. package/dist/types/cli/server/{dataLoaderPlugin.d.ts → fetchRoutePlugin.d.ts} +2 -2
  37. package/dist/types/types/index.d.ts +2 -8
  38. package/dist/types/types/routes.d.ts +19 -0
  39. package/package.json +32 -32
  40. package/dist/cjs/cli/dataLoader/plugin.js +0 -219
  41. package/dist/esm-node/cli/dataLoader/plugin.js +0 -184
  42. package/dist/types/cli/dataLoader/plugin.d.ts +0 -6
  43. /package/dist/cjs/cli/{dataLoader → routes}/ast/constant.js +0 -0
  44. /package/dist/cjs/cli/{dataLoader → routes}/ast/generateRoutes.js +0 -0
  45. /package/dist/cjs/cli/{dataLoader → routes}/ast/index.js +0 -0
  46. /package/dist/cjs/cli/{dataLoader → routes}/clearMFCache.js +0 -0
  47. /package/dist/cjs/runtime/{dataLoader → routes}/utils.js +0 -0
  48. /package/dist/esm/cli/{dataLoader → routes}/ast/constant.js +0 -0
  49. /package/dist/esm/cli/{dataLoader → routes}/ast/generateRoutes.js +0 -0
  50. /package/dist/esm/cli/{dataLoader → routes}/ast/index.js +0 -0
  51. /package/dist/esm/cli/{dataLoader → routes}/clearMFCache.js +0 -0
  52. /package/dist/esm/runtime/{dataLoader → routes}/utils.js +0 -0
  53. /package/dist/esm-node/cli/{dataLoader → routes}/ast/constant.js +0 -0
  54. /package/dist/esm-node/cli/{dataLoader → routes}/ast/generateRoutes.js +0 -0
  55. /package/dist/esm-node/cli/{dataLoader → routes}/ast/index.js +0 -0
  56. /package/dist/esm-node/cli/{dataLoader → routes}/clearMFCache.js +0 -0
  57. /package/dist/esm-node/runtime/{dataLoader → routes}/utils.js +0 -0
  58. /package/dist/types/cli/{dataLoader → routes}/ast/constant.d.ts +0 -0
  59. /package/dist/types/cli/{dataLoader → routes}/ast/generateRoutes.d.ts +0 -0
  60. /package/dist/types/cli/{dataLoader → routes}/ast/index.d.ts +0 -0
  61. /package/dist/types/cli/{dataLoader → routes}/clearMFCache.d.ts +0 -0
  62. /package/dist/types/runtime/{dataLoader → routes}/plugin-inject-assets.d.ts +0 -0
  63. /package/dist/types/runtime/{dataLoader → routes}/plugin.d.ts +0 -0
  64. /package/dist/types/runtime/{dataLoader → routes}/utils.d.ts +0 -0
@@ -0,0 +1,79 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import { META_NAME } from "../../constant";
4
+ import { addExpose } from "./utils";
5
+ var moduleFederationExportRoutePlugin = function(param) {
6
+ var userConfig = param.userConfig, internalOptions = param.internalOptions, entries = param.entries;
7
+ return {
8
+ name: "@modern-js/plugin-module-federation-export-routes",
9
+ pre: [
10
+ "@modern-js/plugin-module-federation-route"
11
+ ],
12
+ post: [
13
+ "@modern-js/plugin-router",
14
+ "@modern-js/plugin-module-federation"
15
+ ],
16
+ setup: function() {
17
+ var _ref = _async_to_generator(function(param2) {
18
+ var useAppContext, appContext, _internalOptions_metaName, metaName, internalDirectory;
19
+ return _ts_generator(this, function(_state) {
20
+ useAppContext = param2.useAppContext;
21
+ if (!userConfig.exportRoutes) {
22
+ return [
23
+ 2
24
+ ];
25
+ }
26
+ appContext = useAppContext();
27
+ _internalOptions_metaName = internalOptions.metaName, metaName = _internalOptions_metaName === void 0 ? META_NAME : _internalOptions_metaName;
28
+ internalDirectory = appContext.internalDirectory.replace(META_NAME, metaName || META_NAME);
29
+ return [
30
+ 2,
31
+ {
32
+ config: /* @__PURE__ */ _async_to_generator(function() {
33
+ return _ts_generator(this, function(_state2) {
34
+ return [
35
+ 2,
36
+ {
37
+ tools: {
38
+ // bundlerChain can not keep target order
39
+ rspack: function rspack(_config, param3) {
40
+ var isServer = param3.isServer;
41
+ addExpose({
42
+ mfConfig: isServer ? internalOptions.ssrConfig : internalOptions.csrConfig,
43
+ metaName,
44
+ isServer,
45
+ internalDirectory,
46
+ entries
47
+ });
48
+ },
49
+ // bundlerChain can not keep target order
50
+ webpack: function webpack(_config, param3) {
51
+ var isServer = param3.isServer;
52
+ addExpose({
53
+ mfConfig: isServer ? internalOptions.ssrConfig : internalOptions.csrConfig,
54
+ metaName,
55
+ isServer,
56
+ internalDirectory,
57
+ entries
58
+ });
59
+ }
60
+ }
61
+ }
62
+ ];
63
+ });
64
+ })
65
+ }
66
+ ];
67
+ });
68
+ });
69
+ return function(_) {
70
+ return _ref.apply(this, arguments);
71
+ };
72
+ }()
73
+ };
74
+ };
75
+ var exportRoutePlugin_default = moduleFederationExportRoutePlugin;
76
+ export {
77
+ exportRoutePlugin_default as default,
78
+ moduleFederationExportRoutePlugin
79
+ };
@@ -0,0 +1,122 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
4
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
5
+ import { META_NAME } from "../../constant";
6
+ import { clearMFCache } from "./clearMFCache";
7
+ function _transformRuntimeOptions(buildOptions) {
8
+ var remotes = buildOptions.remotes || {};
9
+ var runtimeRemotes = Object.entries(remotes).map(function(remote) {
10
+ var _remote = _sliced_to_array(remote, 2), alias = _remote[0], nameAndEntry = _remote[1];
11
+ var _nameAndEntry_split = _sliced_to_array(nameAndEntry.split("@"), 2), name = _nameAndEntry_split[0], entry = _nameAndEntry_split[1];
12
+ return {
13
+ name,
14
+ entry,
15
+ alias
16
+ };
17
+ });
18
+ return {
19
+ name: buildOptions.name,
20
+ remotes: runtimeRemotes
21
+ };
22
+ }
23
+ var moduleFederationImportRoutePlugin = function(param) {
24
+ var userConfig = param.userConfig, internalOptions = param.internalOptions, remotePathMap = param.remotePathMap, _param_serverPlugin = param.serverPlugin, serverPlugin = _param_serverPlugin === void 0 ? "@module-federation/modern-js/fetch-router-server-plugin" : _param_serverPlugin, ssrByRouteIdsMap = param.ssrByRouteIdsMap, transformRuntimeOptions = param.transformRuntimeOptions;
25
+ return {
26
+ name: "@modern-js/plugin-module-federation-import-routes",
27
+ pre: [
28
+ "@modern-js/plugin-module-federation-route"
29
+ ],
30
+ post: [
31
+ "@modern-js/plugin-router",
32
+ "@modern-js/plugin-module-federation"
33
+ ],
34
+ setup: /* @__PURE__ */ _async_to_generator(function() {
35
+ var _internalOptions_metaName, metaName, transformRuntimeFn, dataLoaderRemotes, serverPluginOptions, hasDataLoaderRemotes;
36
+ return _ts_generator(this, function(_state) {
37
+ if (!userConfig.importRoutes) {
38
+ return [
39
+ 2
40
+ ];
41
+ }
42
+ _internalOptions_metaName = internalOptions.metaName, metaName = _internalOptions_metaName === void 0 ? META_NAME : _internalOptions_metaName;
43
+ transformRuntimeFn = transformRuntimeOptions || _transformRuntimeOptions;
44
+ dataLoaderRemotes = _to_consumable_array(new Set(Object.values(remotePathMap).map(function(i) {
45
+ return i.name;
46
+ })));
47
+ serverPluginOptions = {
48
+ runtimeOptions: transformRuntimeFn(internalOptions.csrConfig),
49
+ dataLoaderRemotes,
50
+ ssrByRouteIdsMap
51
+ };
52
+ hasDataLoaderRemotes = function() {
53
+ return Boolean(serverPluginOptions.dataLoaderRemotes.length);
54
+ };
55
+ return [
56
+ 2,
57
+ {
58
+ _internalRuntimePlugins: function(param2) {
59
+ var entrypoint = param2.entrypoint, plugins = param2.plugins;
60
+ if (!hasDataLoaderRemotes()) {
61
+ return {
62
+ entrypoint,
63
+ plugins
64
+ };
65
+ }
66
+ plugins.push({
67
+ name: "ssrDataLoader",
68
+ path: "@module-federation/modern-js/routes",
69
+ config: {
70
+ metaName,
71
+ dataLoaderRemotes
72
+ }
73
+ });
74
+ plugins.push({
75
+ name: "ssrDataLoaderInjectAssets",
76
+ path: "@module-federation/modern-js/routes-inject-assets",
77
+ config: {
78
+ metaName,
79
+ dataLoaderRemotes
80
+ }
81
+ });
82
+ return {
83
+ entrypoint,
84
+ plugins
85
+ };
86
+ },
87
+ _internalServerPlugins: function _internalServerPlugins(param2) {
88
+ var plugins = param2.plugins;
89
+ if (!hasDataLoaderRemotes()) {
90
+ return {
91
+ plugins
92
+ };
93
+ }
94
+ plugins.push({
95
+ name: serverPlugin,
96
+ options: serverPluginOptions
97
+ });
98
+ return {
99
+ plugins
100
+ };
101
+ },
102
+ afterDev: function afterDev() {
103
+ return _async_to_generator(function() {
104
+ return _ts_generator(this, function(_state2) {
105
+ clearMFCache();
106
+ return [
107
+ 2
108
+ ];
109
+ });
110
+ })();
111
+ }
112
+ }
113
+ ];
114
+ });
115
+ })
116
+ };
117
+ };
118
+ var importRoutesPlugin_default = moduleFederationImportRoutePlugin;
119
+ export {
120
+ importRoutesPlugin_default as default,
121
+ moduleFederationImportRoutePlugin
122
+ };
@@ -1,64 +1,50 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
- import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
4
2
  import { _ as _type_of } from "@swc/helpers/_/_type_of";
5
3
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
+ import path from "path";
6
5
  import { fs } from "@modern-js/utils";
7
- import { transformName2Prefix } from "../../runtime/dataLoader/utils";
8
- import { DEFAULT_ENTRY, ROUTE_ID } from "../../constant";
6
+ import { transformName2Prefix } from "../../runtime/routes/utils";
9
7
  import { META_NAME } from "../../constant";
10
- import { generateRoutes } from "./ast";
11
- import { generateRouteFile } from "./generateRouteFile";
12
- import { patchMFConfig } from "./patchMFConfig";
13
- import { clearMFCache } from "./clearMFCache";
14
- import path from "path";
15
- function _transformRuntimeOptions(buildOptions) {
16
- var remotes = buildOptions.remotes || {};
17
- var runtimeRemotes = Object.entries(remotes).map(function(remote) {
18
- var _remote = _sliced_to_array(remote, 2), alias = _remote[0], nameAndEntry = _remote[1];
19
- var _nameAndEntry_split = _sliced_to_array(nameAndEntry.split("@"), 2), name = _nameAndEntry_split[0], entry = _nameAndEntry_split[1];
20
- return {
21
- name,
22
- entry,
23
- alias
24
- };
25
- });
26
- return {
27
- name: buildOptions.name,
28
- remotes: runtimeRemotes
8
+ import { traverseRouteFiles } from "./traverseRouteFiles";
9
+ import { moduleFederationExportRoutePlugin } from "./exportRoutePlugin";
10
+ import { moduleFederationImportRoutePlugin } from "./importRoutesPlugin";
11
+ import { addShared } from "./utils";
12
+ import { DEFAULT_ENTRY, ROUTE_ID } from "../../constant";
13
+ var moduleFederationRoutesPlugin = function(param) {
14
+ var userConfig = param.userConfig, internalOptions = param.internalOptions, serverPlugin = param.serverPlugin, transformRuntimeOptions = param.transformRuntimeOptions;
15
+ var entries = /* @__PURE__ */ new Set();
16
+ var remotePathMap = {};
17
+ var ssrByRouteIdsMap = {};
18
+ var internalRoutesPluginOptions = {
19
+ userConfig,
20
+ internalOptions,
21
+ entries,
22
+ remotePathMap,
23
+ ssrByRouteIdsMap,
24
+ serverPlugin,
25
+ transformRuntimeOptions
29
26
  };
30
- }
31
- var moduleFederationDataLoaderPlugin = function(enable, internalOptions, userConfig) {
32
27
  return {
33
- name: "@modern-js/plugin-module-federation-data-loader",
28
+ name: "@modern-js/plugin-module-federation-route",
34
29
  pre: [
35
30
  "@modern-js/plugin-module-federation-config"
36
31
  ],
37
- post: [
38
- "@modern-js/plugin-router",
39
- "@modern-js/plugin-module-federation"
40
- ],
41
32
  setup: function() {
42
- var _ref = _async_to_generator(function(param) {
43
- var useAppContext, _userConfig_serverPlugin, serverPlugin, transformRuntimeOptions, appContext, name, _internalOptions_metaName, metaName, internalDirectory, transformRuntimeFn, entries, remotePathMap, ssrByRouteIdsMap, csrConfig, _ref2, scanEntries, scanRemotePathMap, dataLoaderRemotes, serverPluginOptions, hasDataLoaderRemotes;
33
+ var _ref = _async_to_generator(function(param2) {
34
+ var useAppContext, appContext, name, _internalOptions_metaName, metaName, internalDirectory, csrConfig, _ref2, scanEntries;
44
35
  return _ts_generator(this, function(_state) {
45
36
  switch (_state.label) {
46
37
  case 0:
47
- useAppContext = param.useAppContext;
48
- if (!enable) {
38
+ useAppContext = param2.useAppContext;
39
+ if (!userConfig.exportRoutes && !userConfig.importRoutes) {
49
40
  return [
50
41
  2
51
42
  ];
52
43
  }
53
- _userConfig_serverPlugin = userConfig.serverPlugin, serverPlugin = _userConfig_serverPlugin === void 0 ? "@module-federation/modern-js/data-loader-server" : _userConfig_serverPlugin, transformRuntimeOptions = userConfig.transformRuntimeOptions;
54
44
  appContext = useAppContext();
55
45
  name = internalOptions.csrConfig.name;
56
46
  _internalOptions_metaName = internalOptions.metaName, metaName = _internalOptions_metaName === void 0 ? META_NAME : _internalOptions_metaName;
57
47
  internalDirectory = appContext.internalDirectory.replace(META_NAME, metaName || META_NAME);
58
- transformRuntimeFn = transformRuntimeOptions || _transformRuntimeOptions;
59
- entries = /* @__PURE__ */ new Set();
60
- remotePathMap = {};
61
- ssrByRouteIdsMap = {};
62
48
  csrConfig = internalOptions.csrConfig;
63
49
  if (!(_type_of(csrConfig.remotes) === "object" && Object.keys(csrConfig.remotes).length))
64
50
  return [
@@ -67,16 +53,17 @@ var moduleFederationDataLoaderPlugin = function(enable, internalOptions, userCon
67
53
  ];
68
54
  return [
69
55
  4,
70
- generateRouteFile({
71
- appDirectory: appContext.appDirectory
56
+ traverseRouteFiles({
57
+ appDirectory: appContext.appDirectory,
58
+ generateRouteFile: userConfig.importRoutes,
59
+ remotePathMap
72
60
  })
73
61
  ];
74
62
  case 1:
75
- _ref2 = _state.sent(), scanEntries = _ref2.entries, scanRemotePathMap = _ref2.remotePathMap;
63
+ _ref2 = _state.sent(), scanEntries = _ref2.entries;
76
64
  scanEntries.forEach(function(e) {
77
65
  return entries.add(e);
78
66
  });
79
- remotePathMap = scanRemotePathMap;
80
67
  return [
81
68
  3,
82
69
  3
@@ -85,64 +72,47 @@ var moduleFederationDataLoaderPlugin = function(enable, internalOptions, userCon
85
72
  entries.add(DEFAULT_ENTRY);
86
73
  _state.label = 3;
87
74
  case 3:
88
- dataLoaderRemotes = _to_consumable_array(new Set(Object.values(remotePathMap).map(function(i) {
89
- return i.name;
90
- })));
91
- serverPluginOptions = {
92
- runtimeOptions: transformRuntimeFn(internalOptions.csrConfig),
93
- dataLoaderRemotes,
94
- ssrByRouteIdsMap
95
- };
96
- hasDataLoaderRemotes = function() {
97
- return Boolean(serverPluginOptions.dataLoaderRemotes.length);
98
- };
99
75
  return [
100
76
  2,
101
77
  {
102
- _internalRuntimePlugins: function(param2) {
103
- var entrypoint = param2.entrypoint, plugins = param2.plugins;
104
- if (!hasDataLoaderRemotes()) {
105
- return {
106
- entrypoint,
107
- plugins
108
- };
109
- }
110
- plugins.push({
111
- name: "ssrDataLoader",
112
- path: "@module-federation/modern-js/data-loader",
113
- config: {
114
- metaName,
115
- dataLoaderRemotes
116
- }
117
- });
118
- plugins.push({
119
- name: "ssrDataLoaderInjectAssets",
120
- path: "@module-federation/modern-js/data-loader-inject-assets",
121
- config: {
122
- metaName,
123
- dataLoaderRemotes
124
- }
125
- });
126
- return {
127
- entrypoint,
128
- plugins
129
- };
130
- },
131
- _internalServerPlugins: function _internalServerPlugins(param2) {
132
- var plugins = param2.plugins;
133
- if (!hasDataLoaderRemotes()) {
134
- return {
135
- plugins
136
- };
137
- }
138
- plugins.push({
139
- name: serverPlugin,
140
- options: serverPluginOptions
78
+ config: /* @__PURE__ */ _async_to_generator(function() {
79
+ return _ts_generator(this, function(_state2) {
80
+ return [
81
+ 2,
82
+ {
83
+ tools: {
84
+ // bundlerChain can not keep target order
85
+ rspack: function rspack(_config, param3) {
86
+ var isServer = param3.isServer;
87
+ addShared({
88
+ mfConfig: isServer ? internalOptions.ssrConfig : internalOptions.csrConfig,
89
+ metaName,
90
+ isServer,
91
+ internalDirectory,
92
+ entries
93
+ });
94
+ },
95
+ // bundlerChain can not keep target order
96
+ webpack: function webpack(_config, param3) {
97
+ var isServer = param3.isServer;
98
+ addShared({
99
+ mfConfig: isServer ? internalOptions.ssrConfig : internalOptions.csrConfig,
100
+ metaName,
101
+ isServer,
102
+ internalDirectory,
103
+ entries
104
+ });
105
+ }
106
+ },
107
+ source: {
108
+ define: {
109
+ MODERN_ROUTER_ID_PREFIX: JSON.stringify(transformName2Prefix(name))
110
+ }
111
+ }
112
+ }
113
+ ];
141
114
  });
142
- return {
143
- plugins
144
- };
145
- },
115
+ }),
146
116
  modifyFileSystemRoutes: function modifyFileSystemRoutes(options) {
147
117
  return _async_to_generator(function() {
148
118
  var routes, entrypoint, entryName, prefix, modifyRouteIds;
@@ -273,54 +243,6 @@ var moduleFederationDataLoaderPlugin = function(enable, internalOptions, userCon
273
243
  }
274
244
  });
275
245
  })();
276
- },
277
- config: /* @__PURE__ */ _async_to_generator(function() {
278
- return _ts_generator(this, function(_state2) {
279
- return [
280
- 2,
281
- {
282
- tools: {
283
- // bundlerChain can not keep target order
284
- rspack: function rspack(_config, param2) {
285
- var isServer = param2.isServer;
286
- patchMFConfig({
287
- mfConfig: isServer ? internalOptions.ssrConfig : internalOptions.csrConfig,
288
- metaName,
289
- isServer,
290
- internalDirectory,
291
- entries
292
- });
293
- },
294
- // bundlerChain can not keep target order
295
- webpack: function webpack(_config, param2) {
296
- var isServer = param2.isServer;
297
- patchMFConfig({
298
- mfConfig: isServer ? internalOptions.ssrConfig : internalOptions.csrConfig,
299
- metaName,
300
- isServer,
301
- internalDirectory,
302
- entries
303
- });
304
- }
305
- },
306
- source: {
307
- define: {
308
- MODERN_ROUTER_ID_PREFIX: JSON.stringify(transformName2Prefix(name))
309
- }
310
- }
311
- }
312
- ];
313
- });
314
- }),
315
- afterDev: function afterDev() {
316
- return _async_to_generator(function() {
317
- return _ts_generator(this, function(_state2) {
318
- clearMFCache();
319
- return [
320
- 2
321
- ];
322
- });
323
- })();
324
246
  }
325
247
  }
326
248
  ];
@@ -330,12 +252,15 @@ var moduleFederationDataLoaderPlugin = function(enable, internalOptions, userCon
330
252
  return function(_) {
331
253
  return _ref.apply(this, arguments);
332
254
  };
333
- }()
255
+ }(),
256
+ usePlugins: [
257
+ moduleFederationExportRoutePlugin(internalRoutesPluginOptions),
258
+ moduleFederationImportRoutePlugin(internalRoutesPluginOptions)
259
+ ]
334
260
  };
335
261
  };
336
- var plugin_default = moduleFederationDataLoaderPlugin;
262
+ var plugin_default = moduleFederationRoutesPlugin;
337
263
  export {
338
264
  plugin_default as default,
339
- generateRoutes,
340
- moduleFederationDataLoaderPlugin
265
+ moduleFederationRoutesPlugin
341
266
  };
@@ -5,7 +5,7 @@ import { fs, normalizeToPosixPath } from "@modern-js/utils";
5
5
  import path from "path";
6
6
  import os from "os";
7
7
  import { DEFAULT_ENTRY, MF_JSON, ROUTE_ID } from "../../constant";
8
- import { getRemoteLayoutId } from "../../runtime/dataLoader/utils";
8
+ import { getRemoteLayoutId } from "../../runtime/routes/utils";
9
9
  var ROUTES = "routes";
10
10
  function calcPathName(filePath, rootDir, entry) {
11
11
  var relativePath = path.relative(rootDir, filePath);
@@ -37,18 +37,17 @@ function calcPathName(filePath, rootDir, entry) {
37
37
  return !!p;
38
38
  }).join("/"));
39
39
  }
40
- function generateRouteFile(options) {
41
- return _generateRouteFile.apply(this, arguments);
40
+ function traverseRouteFiles(options) {
41
+ return _traverseRouteFiles.apply(this, arguments);
42
42
  }
43
- function _generateRouteFile() {
44
- _generateRouteFile = _async_to_generator(function(options) {
45
- var appDirectory, entries, remotePathMap, srcPath, traverse, traverseRoutes, normalizedEntries;
43
+ function _traverseRouteFiles() {
44
+ _traverseRouteFiles = _async_to_generator(function(options) {
45
+ var appDirectory, generateRouteFile, remotePathMap, entries, srcPath, traverse, traverseRoutes, normalizedEntries;
46
46
  return _ts_generator(this, function(_state) {
47
47
  switch (_state.label) {
48
48
  case 0:
49
- appDirectory = options.appDirectory;
49
+ appDirectory = options.appDirectory, generateRouteFile = options.generateRouteFile, remotePathMap = options.remotePathMap;
50
50
  entries = [];
51
- remotePathMap = {};
52
51
  srcPath = "".concat(appDirectory, "/src");
53
52
  traverse = function() {
54
53
  var _ref = _async_to_generator(function(filepath, rootDir, entry) {
@@ -224,22 +223,29 @@ function _generateRouteFile() {
224
223
  }))
225
224
  return [
226
225
  3,
227
- 4
226
+ 5
228
227
  ];
229
228
  entry = path.relative(srcPath, dir);
230
229
  entries.push(entry);
231
230
  rootDir = "".concat(dir, "/").concat(ROUTES);
231
+ if (!generateRouteFile)
232
+ return [
233
+ 3,
234
+ 4
235
+ ];
232
236
  return [
233
237
  4,
234
238
  traverse(rootDir, rootDir, entry)
235
239
  ];
236
240
  case 3:
237
241
  _state2.sent();
242
+ _state2.label = 4;
243
+ case 4:
238
244
  return [
239
245
  3,
240
- 6
246
+ 7
241
247
  ];
242
- case 4:
248
+ case 5:
243
249
  return [
244
250
  4,
245
251
  Promise.all(items.map(function() {
@@ -264,10 +270,10 @@ function _generateRouteFile() {
264
270
  };
265
271
  }()))
266
272
  ];
267
- case 5:
268
- _state2.sent();
269
- _state2.label = 6;
270
273
  case 6:
274
+ _state2.sent();
275
+ _state2.label = 7;
276
+ case 7:
271
277
  return [
272
278
  2
273
279
  ];
@@ -293,16 +299,15 @@ function _generateRouteFile() {
293
299
  return [
294
300
  2,
295
301
  {
296
- entries: normalizedEntries,
297
- remotePathMap
302
+ entries: normalizedEntries
298
303
  }
299
304
  ];
300
305
  }
301
306
  });
302
307
  });
303
- return _generateRouteFile.apply(this, arguments);
308
+ return _traverseRouteFiles.apply(this, arguments);
304
309
  }
305
310
  export {
306
311
  calcPathName,
307
- generateRouteFile
312
+ traverseRouteFiles
308
313
  };
@@ -79,7 +79,8 @@ function addExpose(options) {
79
79
  });
80
80
  }
81
81
  function addShared(options) {
82
- var metaName = options.metaName, mfConfig = options.mfConfig;
82
+ var mfConfig = options.mfConfig;
83
+ var styledComponents = "styled-components";
83
84
  var reactRouterDom = "react-router-dom";
84
85
  var reactRouterDomServer = "react-router-dom/server";
85
86
  if (!mfConfig.shared) {
@@ -88,6 +89,8 @@ function addShared(options) {
88
89
  singleton: true
89
90
  }), _define_property(_obj, reactRouterDomServer, {
90
91
  singleton: true
92
+ }), _define_property(_obj, styledComponents, {
93
+ singleton: true
91
94
  }), _obj);
92
95
  } else {
93
96
  if (!Array.isArray(mfConfig.shared)) {
@@ -97,6 +100,9 @@ function addShared(options) {
97
100
  mfConfig.shared[reactRouterDomServer] = {
98
101
  singleton: true
99
102
  };
103
+ mfConfig.shared[styledComponents] = {
104
+ singleton: true
105
+ };
100
106
  } else {
101
107
  mfConfig.shared = mfConfig.shared.reduce(function(sum, cur) {
102
108
  if (typeof cur === "string") {
@@ -112,13 +118,13 @@ function addShared(options) {
112
118
  mfConfig.shared[reactRouterDomServer] = {
113
119
  singleton: true
114
120
  };
121
+ mfConfig.shared[styledComponents] = {
122
+ singleton: true
123
+ };
115
124
  }
116
125
  }
117
126
  }
118
- function patchMFConfig(options) {
119
- addShared(options);
120
- addExpose(options);
121
- }
122
127
  export {
123
- patchMFConfig
128
+ addExpose,
129
+ addShared
124
130
  };
@@ -4,12 +4,12 @@ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
4
  import { init } from "@module-federation/enhanced/runtime";
5
5
  import { isBrowserEnv } from "@module-federation/sdk";
6
6
  import { fetchRemoteFullRoutesMap, getSSRByRouteIds } from "./fetchRemoteFullRoutesMap";
7
- import { injectRemoteRoutes } from "../../runtime/dataLoader/utils";
7
+ import { injectRemoteRoutes } from "../../runtime/routes/utils";
8
8
  import { MF_ROUTES, DEFAULT_ENTRY, MODERN_JS_ROUTE_SERVER_LOADER } from "../../constant";
9
- function dataLoaderPlugin_default(param) {
9
+ function fetchRoutePlugin_default(param) {
10
10
  var runtimeOptions = param.runtimeOptions, dataLoaderRemotes = param.dataLoaderRemotes, ssrByRouteIdsMap = param.ssrByRouteIdsMap;
11
11
  return {
12
- name: "MFDataLoaderServerPlugin",
12
+ name: "@module-federation/modern-js-fetch-route",
13
13
  pre: [
14
14
  "@modern-js/plugin-inject-resource"
15
15
  ],
@@ -100,5 +100,5 @@ function dataLoaderPlugin_default(param) {
100
100
  }
101
101
  ;
102
102
  export {
103
- dataLoaderPlugin_default as default
103
+ fetchRoutePlugin_default as default
104
104
  };