@modern-js/plugin-garfish 2.63.3 → 2.63.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,13 +38,13 @@ var template = __toESM(require("./template"));
38
38
  var import_utils2 = require("./utils");
39
39
  const ENTRY_POINT_FILE_NAME = "index.jsx";
40
40
  const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.jsx";
41
- const generateCode = async (entrypoints, appContext, config, appendEntryCode) => {
41
+ const generateCode = async (entrypoints, appContext, config, hooks) => {
42
42
  const { mountId } = config.html;
43
43
  const { enableAsyncEntry } = config.source;
44
44
  const { internalDirectory, internalSrcAlias, metaName, srcDirectory } = appContext;
45
45
  await Promise.all(entrypoints.map(async (entrypoint) => {
46
46
  const { entryName, isAutoMount, entry, customEntry, customBootstrap } = entrypoint;
47
- const appendCode = await appendEntryCode({
47
+ const appendCode = await hooks.appendEntryCode.call({
48
48
  entrypoint
49
49
  });
50
50
  if (isAutoMount) {
@@ -24,7 +24,7 @@ __export(cli_exports, {
24
24
  getDefaultMicroFrontedConfig: () => getDefaultMicroFrontedConfig
25
25
  });
26
26
  module.exports = __toCommonJS(cli_exports);
27
- var import_plugin = require("@modern-js/plugin");
27
+ var import_plugin_v2 = require("@modern-js/plugin-v2");
28
28
  var import_utils = require("@modern-js/utils");
29
29
  var import_util = require("../util");
30
30
  var import_code = require("./code");
@@ -47,160 +47,151 @@ function getDefaultMicroFrontedConfig(microFrontend) {
47
47
  ...microFrontend
48
48
  };
49
49
  }
50
- const appendEntryCode = (0, import_plugin.createAsyncWorkflow)();
51
50
  const garfishPlugin = () => ({
52
51
  name: "@modern-js/plugin-garfish",
53
52
  pre: [
54
53
  "@modern-js/runtime"
55
54
  ],
56
- registerHook: {
57
- appendEntryCode
55
+ registryHooks: {
56
+ appendEntryCode: (0, import_plugin_v2.createCollectAsyncHook)()
58
57
  },
59
58
  setup: (api) => {
60
- return {
61
- _internalRuntimePlugins({ entrypoint, plugins }) {
62
- const userConfig = api.useResolvedConfigContext();
63
- const { packageName, metaName } = api.useAppContext();
64
- const runtimeConfig = (0, import_utils.getEntryOptions)(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName);
65
- if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) {
66
- plugins.push({
67
- name: "garfish",
68
- path: `@${metaName}/plugin-garfish/runtime`,
69
- config: (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) || {}
70
- });
59
+ api._internalRuntimePlugins(({ entrypoint, plugins }) => {
60
+ const userConfig = api.getNormalizedConfig();
61
+ const { packageName, metaName } = api.getAppContext();
62
+ const runtimeConfig = (0, import_utils.getEntryOptions)(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName);
63
+ if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) {
64
+ plugins.push({
65
+ name: "garfish",
66
+ path: `@${metaName}/plugin-garfish/runtime`,
67
+ config: (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) || {}
68
+ });
69
+ }
70
+ return {
71
+ entrypoint,
72
+ plugins
73
+ };
74
+ });
75
+ api.modifyResolvedConfig((config) => {
76
+ const { masterApp, router } = (0, import_utils2.getRuntimeConfig)(config);
77
+ if (masterApp) {
78
+ var _useConfig_server, _router_historyOptions;
79
+ const useConfig = api.getConfig();
80
+ const baseUrl = useConfig === null || useConfig === void 0 ? void 0 : (_useConfig_server = useConfig.server) === null || _useConfig_server === void 0 ? void 0 : _useConfig_server.baseUrl;
81
+ if (Array.isArray(baseUrl)) {
82
+ throw new Error("Now Micro-Front-End mode dose not support multiple baseUrl, you can set it as a string");
71
83
  }
72
- return {
73
- entrypoint,
74
- plugins
75
- };
76
- },
77
- resolvedConfig: async (config) => {
78
- const { resolved } = config;
79
- const { masterApp, router } = (0, import_utils2.getRuntimeConfig)(resolved);
80
- const nConfig = {
81
- resolved: {
82
- ...resolved
83
- }
84
- };
85
- if (masterApp) {
86
- var _useConfig_server, _router_historyOptions;
87
- const useConfig = api.useConfigContext();
88
- const baseUrl = useConfig === null || useConfig === void 0 ? void 0 : (_useConfig_server = useConfig.server) === null || _useConfig_server === void 0 ? void 0 : _useConfig_server.baseUrl;
89
- if (Array.isArray(baseUrl)) {
90
- throw new Error("Now Micro-Front-End mode dose not support multiple baseUrl, you can set it as a string");
91
- }
92
- (0, import_utils2.setRuntimeConfig)(nConfig.resolved, "masterApp", Object.assign(typeof masterApp === "object" ? {
93
- ...masterApp
94
- } : {}, {
95
- basename: baseUrl || (router === null || router === void 0 ? void 0 : (_router_historyOptions = router.historyOptions) === null || _router_historyOptions === void 0 ? void 0 : _router_historyOptions.basename) || (router === null || router === void 0 ? void 0 : router.basename) || "/"
96
- }));
84
+ (0, import_utils2.setRuntimeConfig)(config, "masterApp", Object.assign(typeof masterApp === "object" ? {
85
+ ...masterApp
86
+ } : {}, {
87
+ basename: baseUrl || (router === null || router === void 0 ? void 0 : (_router_historyOptions = router.historyOptions) === null || _router_historyOptions === void 0 ? void 0 : _router_historyOptions.basename) || (router === null || router === void 0 ? void 0 : router.basename) || "/"
88
+ }));
89
+ }
90
+ (0, import_util.logger)(`resolvedConfig`, {
91
+ output: config.output,
92
+ runtime: config.runtime,
93
+ deploy: config.deploy,
94
+ server: config.server
95
+ });
96
+ return config;
97
+ });
98
+ api.config(() => {
99
+ var _useConfig_output, _useConfig_deploy;
100
+ const useConfig = api.getConfig();
101
+ const { metaName, packageName } = api.getAppContext();
102
+ (0, import_util.logger)("useConfig", useConfig);
103
+ let disableCssExtract = ((_useConfig_output = useConfig.output) === null || _useConfig_output === void 0 ? void 0 : _useConfig_output.disableCssExtract) || false;
104
+ if ((_useConfig_deploy = useConfig.deploy) === null || _useConfig_deploy === void 0 ? void 0 : _useConfig_deploy.microFrontend) {
105
+ var _useConfig_deploy1;
106
+ const { enableHtmlEntry } = getDefaultMicroFrontedConfig((_useConfig_deploy1 = useConfig.deploy) === null || _useConfig_deploy1 === void 0 ? void 0 : _useConfig_deploy1.microFrontend);
107
+ if (!enableHtmlEntry) {
108
+ disableCssExtract = true;
97
109
  }
98
- (0, import_util.logger)(`resolvedConfig`, {
99
- output: nConfig.resolved.output,
100
- runtime: nConfig.resolved.runtime,
101
- deploy: nConfig.resolved.deploy,
102
- server: nConfig.resolved.server
103
- });
104
- return nConfig;
105
- },
106
- config() {
107
- var _useConfig_output, _useConfig_deploy;
108
- const useConfig = api.useConfigContext();
109
- const { metaName, packageName } = api.useAppContext();
110
- (0, import_util.logger)("useConfig", useConfig);
111
- let disableCssExtract = ((_useConfig_output = useConfig.output) === null || _useConfig_output === void 0 ? void 0 : _useConfig_output.disableCssExtract) || false;
112
- if ((_useConfig_deploy = useConfig.deploy) === null || _useConfig_deploy === void 0 ? void 0 : _useConfig_deploy.microFrontend) {
113
- var _useConfig_deploy1;
114
- const { enableHtmlEntry } = getDefaultMicroFrontedConfig((_useConfig_deploy1 = useConfig.deploy) === null || _useConfig_deploy1 === void 0 ? void 0 : _useConfig_deploy1.microFrontend);
115
- if (!enableHtmlEntry) {
116
- disableCssExtract = true;
110
+ }
111
+ return {
112
+ output: {
113
+ disableCssExtract
114
+ },
115
+ source: {
116
+ alias: {
117
+ [`@${metaName}/runtime/garfish`]: `@${metaName}/plugin-garfish/runtime`
117
118
  }
118
- }
119
- return {
120
- output: {
121
- disableCssExtract
122
- },
123
- source: {
124
- alias: {
125
- [`@${metaName}/runtime/garfish`]: `@${metaName}/plugin-garfish/runtime`
119
+ },
120
+ tools: {
121
+ devServer: {
122
+ headers: {
123
+ "Access-Control-Allow-Origin": "*"
126
124
  }
127
125
  },
128
- tools: {
129
- devServer: {
130
- headers: {
131
- "Access-Control-Allow-Origin": "*"
132
- }
133
- },
134
- bundlerChain: (chain, { env, CHAIN_ID, bundler }) => {
135
- var _resolveOptions_deploy, _resolveConfig_resolve;
136
- if (bundler.BannerPlugin) {
137
- chain.plugin("garfish-banner").use(bundler.BannerPlugin, [
138
- {
139
- banner: "Micro front-end"
140
- }
141
- ]);
142
- }
143
- const resolveOptions = api.useResolvedConfigContext();
144
- if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
145
- var _resolveOptions_dev, _useConfig_dev, _resolveOptions_server, _resolveOptions_deploy1;
146
- chain.output.libraryTarget("umd");
147
- const DEFAULT_ASSET_PREFIX = "/";
148
- const resolvedAssetPrefix = (_resolveOptions_dev = resolveOptions.dev) === null || _resolveOptions_dev === void 0 ? void 0 : _resolveOptions_dev.assetPrefix;
149
- const isUsingDefaultAssetPrefix = !((_useConfig_dev = useConfig.dev) === null || _useConfig_dev === void 0 ? void 0 : _useConfig_dev.assetPrefix) && (!resolvedAssetPrefix || resolvedAssetPrefix === DEFAULT_ASSET_PREFIX);
150
- if (isUsingDefaultAssetPrefix && (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_server = resolveOptions.server) === null || _resolveOptions_server === void 0 ? void 0 : _resolveOptions_server.port) && env === "development") {
151
- chain.output.publicPath(`//localhost:${resolveOptions.server.port}/`);
152
- }
153
- const { enableHtmlEntry, externalBasicLibrary } = getDefaultMicroFrontedConfig((_resolveOptions_deploy1 = resolveOptions.deploy) === null || _resolveOptions_deploy1 === void 0 ? void 0 : _resolveOptions_deploy1.microFrontend);
154
- if (externalBasicLibrary) {
155
- chain.externals(externals);
156
- }
157
- if (!enableHtmlEntry) {
158
- chain.output.filename("index.js");
159
- chain.plugins.delete(`${CHAIN_ID.PLUGIN.HTML}-main`);
160
- chain.optimization.runtimeChunk(false);
161
- chain.optimization.splitChunks({
162
- chunks: "async"
163
- });
126
+ bundlerChain: (chain, { env, CHAIN_ID, bundler }) => {
127
+ var _resolveOptions_deploy, _resolveConfig_resolve;
128
+ if (bundler.BannerPlugin) {
129
+ chain.plugin("garfish-banner").use(bundler.BannerPlugin, [
130
+ {
131
+ banner: "Micro front-end"
164
132
  }
133
+ ]);
134
+ }
135
+ const resolveOptions = api.getNormalizedConfig();
136
+ if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
137
+ var _resolveOptions_dev, _useConfig_dev, _resolveOptions_server, _resolveOptions_deploy1;
138
+ chain.output.libraryTarget("umd");
139
+ const DEFAULT_ASSET_PREFIX = "/";
140
+ const resolvedAssetPrefix = (_resolveOptions_dev = resolveOptions.dev) === null || _resolveOptions_dev === void 0 ? void 0 : _resolveOptions_dev.assetPrefix;
141
+ const isUsingDefaultAssetPrefix = !((_useConfig_dev = useConfig.dev) === null || _useConfig_dev === void 0 ? void 0 : _useConfig_dev.assetPrefix) && (!resolvedAssetPrefix || resolvedAssetPrefix === DEFAULT_ASSET_PREFIX);
142
+ if (isUsingDefaultAssetPrefix && (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_server = resolveOptions.server) === null || _resolveOptions_server === void 0 ? void 0 : _resolveOptions_server.port) && env === "development") {
143
+ chain.output.publicPath(`//localhost:${resolveOptions.server.port}/`);
165
144
  }
166
- const uniqueName = chain.output.get("uniqueName");
167
- if (!uniqueName) {
168
- chain.output.uniqueName(packageName);
145
+ const { enableHtmlEntry, externalBasicLibrary } = getDefaultMicroFrontedConfig((_resolveOptions_deploy1 = resolveOptions.deploy) === null || _resolveOptions_deploy1 === void 0 ? void 0 : _resolveOptions_deploy1.microFrontend);
146
+ if (externalBasicLibrary) {
147
+ chain.externals(externals);
169
148
  }
170
- const resolveConfig = chain.toConfig();
171
- (0, import_util.logger)("bundlerConfig", {
172
- output: resolveConfig.output,
173
- externals: resolveConfig.externals,
174
- env,
175
- alias: (_resolveConfig_resolve = resolveConfig.resolve) === null || _resolveConfig_resolve === void 0 ? void 0 : _resolveConfig_resolve.alias,
176
- plugins: resolveConfig.plugins
177
- });
149
+ if (!enableHtmlEntry) {
150
+ chain.output.filename("index.js");
151
+ chain.plugins.delete(`${CHAIN_ID.PLUGIN.HTML}-main`);
152
+ chain.optimization.runtimeChunk(false);
153
+ chain.optimization.splitChunks({
154
+ chunks: "async"
155
+ });
156
+ }
157
+ }
158
+ const uniqueName = chain.output.get("uniqueName");
159
+ if (!uniqueName) {
160
+ chain.output.uniqueName(packageName);
178
161
  }
162
+ const resolveConfig = chain.toConfig();
163
+ (0, import_util.logger)("bundlerConfig", {
164
+ output: resolveConfig.output,
165
+ externals: resolveConfig.externals,
166
+ env,
167
+ alias: (_resolveConfig_resolve = resolveConfig.resolve) === null || _resolveConfig_resolve === void 0 ? void 0 : _resolveConfig_resolve.alias,
168
+ plugins: resolveConfig.plugins
169
+ });
179
170
  }
180
- };
181
- },
182
- addRuntimeExports() {
183
- const config = api.useResolvedConfigContext();
184
- const { masterApp } = (0, import_utils2.getRuntimeConfig)(config);
185
- const { internalDirectory, metaName } = api.useAppContext();
186
- const pluginsExportsUtils = (0, import_utils.createRuntimeExportsUtils)(internalDirectory, "plugins");
187
- if (masterApp) {
188
- const addExportStatement = `export { default as garfish, default as masterApp } from '@${metaName}/plugin-garfish/runtime'`;
189
- (0, import_util.logger)("exportStatement", addExportStatement);
190
- pluginsExportsUtils.addExport(addExportStatement);
191
- }
192
- },
193
- async generateEntryCode({ entrypoints }) {
194
- var _resolveOptions_deploy;
195
- const resolveOptions = api.useResolvedConfigContext();
196
- if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
197
- const appContext = api.useAppContext();
198
- const resolvedConfig = api.useResolvedConfigContext();
199
- const { appendEntryCode: appendEntryCode2 } = api.useHookRunners();
200
- await (0, import_code.generateCode)(entrypoints, appContext, resolvedConfig, appendEntryCode2);
201
171
  }
172
+ };
173
+ });
174
+ api.addRuntimeExports(() => {
175
+ const config = api.getNormalizedConfig();
176
+ const { masterApp } = (0, import_utils2.getRuntimeConfig)(config);
177
+ const { internalDirectory, metaName } = api.useAppContext();
178
+ const pluginsExportsUtils = (0, import_utils.createRuntimeExportsUtils)(internalDirectory, "plugins");
179
+ if (masterApp) {
180
+ const addExportStatement = `export { default as garfish, default as masterApp } from '@${metaName}/plugin-garfish/runtime'`;
181
+ (0, import_util.logger)("exportStatement", addExportStatement);
182
+ pluginsExportsUtils.addExport(addExportStatement);
202
183
  }
203
- };
184
+ });
185
+ api.generateEntryCode(async ({ entrypoints }) => {
186
+ var _resolveOptions_deploy;
187
+ const resolveOptions = api.getNormalizedConfig();
188
+ if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
189
+ const appContext = api.getAppContext();
190
+ const resolvedConfig = api.getNormalizedConfig();
191
+ const hooks = api.getHooks();
192
+ await (0, import_code.generateCode)(entrypoints, appContext, resolvedConfig, hooks);
193
+ }
194
+ });
204
195
  }
205
196
  });
206
197
  var cli_default = garfishPlugin;
@@ -7,7 +7,7 @@ import { generateAsyncEntryCode } from "./utils";
7
7
  var ENTRY_POINT_FILE_NAME = "index.jsx";
8
8
  var ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.jsx";
9
9
  var generateCode = function() {
10
- var _ref = _async_to_generator(function(entrypoints, appContext, config, appendEntryCode) {
10
+ var _ref = _async_to_generator(function(entrypoints, appContext, config, hooks) {
11
11
  var mountId, enableAsyncEntry, internalDirectory, internalSrcAlias, metaName, srcDirectory;
12
12
  return _ts_generator(this, function(_state) {
13
13
  switch (_state.label) {
@@ -26,7 +26,7 @@ var generateCode = function() {
26
26
  entryName = entrypoint.entryName, isAutoMount = entrypoint.isAutoMount, entry = entrypoint.entry, customEntry = entrypoint.customEntry, customBootstrap = entrypoint.customBootstrap;
27
27
  return [
28
28
  4,
29
- appendEntryCode({
29
+ hooks.appendEntryCode.call({
30
30
  entrypoint
31
31
  })
32
32
  ];
@@ -70,7 +70,7 @@ var generateCode = function() {
70
70
  }
71
71
  });
72
72
  });
73
- return function generateCode2(entrypoints, appContext, config, appendEntryCode) {
73
+ return function generateCode2(entrypoints, appContext, config, hooks) {
74
74
  return _ref.apply(this, arguments);
75
75
  };
76
76
  }();
@@ -3,7 +3,7 @@ import { _ as _define_property } from "@swc/helpers/_/_define_property";
3
3
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
4
4
  import { _ as _type_of } from "@swc/helpers/_/_type_of";
5
5
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
6
- import { createAsyncWorkflow } from "@modern-js/plugin";
6
+ import { createCollectAsyncHook } from "@modern-js/plugin-v2";
7
7
  import { createRuntimeExportsUtils, getEntryOptions } from "@modern-js/utils";
8
8
  import { logger } from "../util";
9
9
  import { generateCode } from "./code";
@@ -25,189 +25,174 @@ function getDefaultMicroFrontedConfig(microFrontend) {
25
25
  externalBasicLibrary: false
26
26
  }, microFrontend);
27
27
  }
28
- var appendEntryCode = createAsyncWorkflow();
29
28
  var garfishPlugin = function() {
30
29
  return {
31
30
  name: "@modern-js/plugin-garfish",
32
31
  pre: [
33
32
  "@modern-js/runtime"
34
33
  ],
35
- registerHook: {
36
- appendEntryCode
34
+ registryHooks: {
35
+ appendEntryCode: createCollectAsyncHook()
37
36
  },
38
37
  setup: function(api) {
39
- return {
40
- _internalRuntimePlugins: function _internalRuntimePlugins(param) {
41
- var entrypoint = param.entrypoint, plugins = param.plugins;
42
- var userConfig = api.useResolvedConfigContext();
43
- var _api_useAppContext = api.useAppContext(), packageName = _api_useAppContext.packageName, metaName = _api_useAppContext.metaName;
44
- var runtimeConfig = getEntryOptions(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName);
45
- if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) {
46
- plugins.push({
47
- name: "garfish",
48
- path: "@".concat(metaName, "/plugin-garfish/runtime"),
49
- config: (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) || {}
50
- });
51
- }
52
- return {
53
- entrypoint,
54
- plugins
55
- };
56
- },
57
- resolvedConfig: function() {
58
- var _ref = _async_to_generator(function(config) {
59
- var resolved, _getRuntimeConfig, masterApp, router, nConfig, _useConfig_server, _router_historyOptions, useConfig, baseUrl;
60
- return _ts_generator(this, function(_state) {
61
- resolved = config.resolved;
62
- _getRuntimeConfig = getRuntimeConfig(resolved), masterApp = _getRuntimeConfig.masterApp, router = _getRuntimeConfig.router;
63
- nConfig = {
64
- resolved: _object_spread({}, resolved)
65
- };
66
- if (masterApp) {
67
- ;
68
- useConfig = api.useConfigContext();
69
- baseUrl = useConfig === null || useConfig === void 0 ? void 0 : (_useConfig_server = useConfig.server) === null || _useConfig_server === void 0 ? void 0 : _useConfig_server.baseUrl;
70
- if (Array.isArray(baseUrl)) {
71
- throw new Error("Now Micro-Front-End mode dose not support multiple baseUrl, you can set it as a string");
72
- }
73
- setRuntimeConfig(nConfig.resolved, "masterApp", Object.assign((typeof masterApp === "undefined" ? "undefined" : _type_of(masterApp)) === "object" ? _object_spread({}, masterApp) : {}, {
74
- basename: baseUrl || (router === null || router === void 0 ? void 0 : (_router_historyOptions = router.historyOptions) === null || _router_historyOptions === void 0 ? void 0 : _router_historyOptions.basename) || (router === null || router === void 0 ? void 0 : router.basename) || "/"
75
- }));
76
- }
77
- logger("resolvedConfig", {
78
- output: nConfig.resolved.output,
79
- runtime: nConfig.resolved.runtime,
80
- deploy: nConfig.resolved.deploy,
81
- server: nConfig.resolved.server
82
- });
83
- return [
84
- 2,
85
- nConfig
86
- ];
87
- });
38
+ api._internalRuntimePlugins(function(param) {
39
+ var entrypoint = param.entrypoint, plugins = param.plugins;
40
+ var userConfig = api.getNormalizedConfig();
41
+ var _api_getAppContext = api.getAppContext(), packageName = _api_getAppContext.packageName, metaName = _api_getAppContext.metaName;
42
+ var runtimeConfig = getEntryOptions(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName);
43
+ if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) {
44
+ plugins.push({
45
+ name: "garfish",
46
+ path: "@".concat(metaName, "/plugin-garfish/runtime"),
47
+ config: (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) || {}
88
48
  });
89
- return function(config) {
90
- return _ref.apply(this, arguments);
91
- };
92
- }(),
93
- config: function config() {
94
- var _useConfig_output, _useConfig_deploy;
95
- var useConfig = api.useConfigContext();
96
- var _api_useAppContext = api.useAppContext(), metaName = _api_useAppContext.metaName, packageName = _api_useAppContext.packageName;
97
- logger("useConfig", useConfig);
98
- var disableCssExtract = ((_useConfig_output = useConfig.output) === null || _useConfig_output === void 0 ? void 0 : _useConfig_output.disableCssExtract) || false;
99
- if ((_useConfig_deploy = useConfig.deploy) === null || _useConfig_deploy === void 0 ? void 0 : _useConfig_deploy.microFrontend) {
100
- var _useConfig_deploy1;
101
- var enableHtmlEntry = getDefaultMicroFrontedConfig((_useConfig_deploy1 = useConfig.deploy) === null || _useConfig_deploy1 === void 0 ? void 0 : _useConfig_deploy1.microFrontend).enableHtmlEntry;
102
- if (!enableHtmlEntry) {
103
- disableCssExtract = true;
104
- }
49
+ }
50
+ return {
51
+ entrypoint,
52
+ plugins
53
+ };
54
+ });
55
+ api.modifyResolvedConfig(function(config) {
56
+ var _getRuntimeConfig = getRuntimeConfig(config), masterApp = _getRuntimeConfig.masterApp, router = _getRuntimeConfig.router;
57
+ if (masterApp) {
58
+ var _useConfig_server, _router_historyOptions;
59
+ var useConfig = api.getConfig();
60
+ var baseUrl = useConfig === null || useConfig === void 0 ? void 0 : (_useConfig_server = useConfig.server) === null || _useConfig_server === void 0 ? void 0 : _useConfig_server.baseUrl;
61
+ if (Array.isArray(baseUrl)) {
62
+ throw new Error("Now Micro-Front-End mode dose not support multiple baseUrl, you can set it as a string");
105
63
  }
106
- return {
107
- output: {
108
- disableCssExtract
109
- },
110
- source: {
111
- alias: _define_property({}, "@".concat(metaName, "/runtime/garfish"), "@".concat(metaName, "/plugin-garfish/runtime"))
64
+ setRuntimeConfig(config, "masterApp", Object.assign((typeof masterApp === "undefined" ? "undefined" : _type_of(masterApp)) === "object" ? _object_spread({}, masterApp) : {}, {
65
+ basename: baseUrl || (router === null || router === void 0 ? void 0 : (_router_historyOptions = router.historyOptions) === null || _router_historyOptions === void 0 ? void 0 : _router_historyOptions.basename) || (router === null || router === void 0 ? void 0 : router.basename) || "/"
66
+ }));
67
+ }
68
+ logger("resolvedConfig", {
69
+ output: config.output,
70
+ runtime: config.runtime,
71
+ deploy: config.deploy,
72
+ server: config.server
73
+ });
74
+ return config;
75
+ });
76
+ api.config(function() {
77
+ var _useConfig_output, _useConfig_deploy;
78
+ var useConfig = api.getConfig();
79
+ var _api_getAppContext = api.getAppContext(), metaName = _api_getAppContext.metaName, packageName = _api_getAppContext.packageName;
80
+ logger("useConfig", useConfig);
81
+ var disableCssExtract = ((_useConfig_output = useConfig.output) === null || _useConfig_output === void 0 ? void 0 : _useConfig_output.disableCssExtract) || false;
82
+ if ((_useConfig_deploy = useConfig.deploy) === null || _useConfig_deploy === void 0 ? void 0 : _useConfig_deploy.microFrontend) {
83
+ var _useConfig_deploy1;
84
+ var enableHtmlEntry = getDefaultMicroFrontedConfig((_useConfig_deploy1 = useConfig.deploy) === null || _useConfig_deploy1 === void 0 ? void 0 : _useConfig_deploy1.microFrontend).enableHtmlEntry;
85
+ if (!enableHtmlEntry) {
86
+ disableCssExtract = true;
87
+ }
88
+ }
89
+ return {
90
+ output: {
91
+ disableCssExtract
92
+ },
93
+ source: {
94
+ alias: _define_property({}, "@".concat(metaName, "/runtime/garfish"), "@".concat(metaName, "/plugin-garfish/runtime"))
95
+ },
96
+ tools: {
97
+ devServer: {
98
+ headers: {
99
+ "Access-Control-Allow-Origin": "*"
100
+ }
112
101
  },
113
- tools: {
114
- devServer: {
115
- headers: {
116
- "Access-Control-Allow-Origin": "*"
117
- }
118
- },
119
- bundlerChain: function(chain, param) {
120
- var env = param.env, CHAIN_ID = param.CHAIN_ID, bundler = param.bundler;
121
- var _resolveOptions_deploy, _resolveConfig_resolve;
122
- if (bundler.BannerPlugin) {
123
- chain.plugin("garfish-banner").use(bundler.BannerPlugin, [
124
- {
125
- banner: "Micro front-end"
126
- }
127
- ]);
128
- }
129
- var resolveOptions = api.useResolvedConfigContext();
130
- if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
131
- var _resolveOptions_dev, _useConfig_dev, _resolveOptions_server, _resolveOptions_deploy1;
132
- chain.output.libraryTarget("umd");
133
- var DEFAULT_ASSET_PREFIX = "/";
134
- var resolvedAssetPrefix = (_resolveOptions_dev = resolveOptions.dev) === null || _resolveOptions_dev === void 0 ? void 0 : _resolveOptions_dev.assetPrefix;
135
- var isUsingDefaultAssetPrefix = !((_useConfig_dev = useConfig.dev) === null || _useConfig_dev === void 0 ? void 0 : _useConfig_dev.assetPrefix) && (!resolvedAssetPrefix || resolvedAssetPrefix === DEFAULT_ASSET_PREFIX);
136
- if (isUsingDefaultAssetPrefix && (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_server = resolveOptions.server) === null || _resolveOptions_server === void 0 ? void 0 : _resolveOptions_server.port) && env === "development") {
137
- chain.output.publicPath("//localhost:".concat(resolveOptions.server.port, "/"));
138
- }
139
- var _getDefaultMicroFrontedConfig = getDefaultMicroFrontedConfig((_resolveOptions_deploy1 = resolveOptions.deploy) === null || _resolveOptions_deploy1 === void 0 ? void 0 : _resolveOptions_deploy1.microFrontend), enableHtmlEntry2 = _getDefaultMicroFrontedConfig.enableHtmlEntry, externalBasicLibrary = _getDefaultMicroFrontedConfig.externalBasicLibrary;
140
- if (externalBasicLibrary) {
141
- chain.externals(externals);
142
- }
143
- if (!enableHtmlEntry2) {
144
- chain.output.filename("index.js");
145
- chain.plugins.delete("".concat(CHAIN_ID.PLUGIN.HTML, "-main"));
146
- chain.optimization.runtimeChunk(false);
147
- chain.optimization.splitChunks({
148
- chunks: "async"
149
- });
102
+ bundlerChain: function(chain, param) {
103
+ var env = param.env, CHAIN_ID = param.CHAIN_ID, bundler = param.bundler;
104
+ var _resolveOptions_deploy, _resolveConfig_resolve;
105
+ if (bundler.BannerPlugin) {
106
+ chain.plugin("garfish-banner").use(bundler.BannerPlugin, [
107
+ {
108
+ banner: "Micro front-end"
150
109
  }
110
+ ]);
111
+ }
112
+ var resolveOptions = api.getNormalizedConfig();
113
+ if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
114
+ var _resolveOptions_dev, _useConfig_dev, _resolveOptions_server, _resolveOptions_deploy1;
115
+ chain.output.libraryTarget("umd");
116
+ var DEFAULT_ASSET_PREFIX = "/";
117
+ var resolvedAssetPrefix = (_resolveOptions_dev = resolveOptions.dev) === null || _resolveOptions_dev === void 0 ? void 0 : _resolveOptions_dev.assetPrefix;
118
+ var isUsingDefaultAssetPrefix = !((_useConfig_dev = useConfig.dev) === null || _useConfig_dev === void 0 ? void 0 : _useConfig_dev.assetPrefix) && (!resolvedAssetPrefix || resolvedAssetPrefix === DEFAULT_ASSET_PREFIX);
119
+ if (isUsingDefaultAssetPrefix && (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_server = resolveOptions.server) === null || _resolveOptions_server === void 0 ? void 0 : _resolveOptions_server.port) && env === "development") {
120
+ chain.output.publicPath("//localhost:".concat(resolveOptions.server.port, "/"));
121
+ }
122
+ var _getDefaultMicroFrontedConfig = getDefaultMicroFrontedConfig((_resolveOptions_deploy1 = resolveOptions.deploy) === null || _resolveOptions_deploy1 === void 0 ? void 0 : _resolveOptions_deploy1.microFrontend), enableHtmlEntry2 = _getDefaultMicroFrontedConfig.enableHtmlEntry, externalBasicLibrary = _getDefaultMicroFrontedConfig.externalBasicLibrary;
123
+ if (externalBasicLibrary) {
124
+ chain.externals(externals);
151
125
  }
152
- var uniqueName = chain.output.get("uniqueName");
153
- if (!uniqueName) {
154
- chain.output.uniqueName(packageName);
126
+ if (!enableHtmlEntry2) {
127
+ chain.output.filename("index.js");
128
+ chain.plugins.delete("".concat(CHAIN_ID.PLUGIN.HTML, "-main"));
129
+ chain.optimization.runtimeChunk(false);
130
+ chain.optimization.splitChunks({
131
+ chunks: "async"
132
+ });
155
133
  }
156
- var resolveConfig = chain.toConfig();
157
- logger("bundlerConfig", {
158
- output: resolveConfig.output,
159
- externals: resolveConfig.externals,
160
- env,
161
- alias: (_resolveConfig_resolve = resolveConfig.resolve) === null || _resolveConfig_resolve === void 0 ? void 0 : _resolveConfig_resolve.alias,
162
- plugins: resolveConfig.plugins
163
- });
164
134
  }
135
+ var uniqueName = chain.output.get("uniqueName");
136
+ if (!uniqueName) {
137
+ chain.output.uniqueName(packageName);
138
+ }
139
+ var resolveConfig = chain.toConfig();
140
+ logger("bundlerConfig", {
141
+ output: resolveConfig.output,
142
+ externals: resolveConfig.externals,
143
+ env,
144
+ alias: (_resolveConfig_resolve = resolveConfig.resolve) === null || _resolveConfig_resolve === void 0 ? void 0 : _resolveConfig_resolve.alias,
145
+ plugins: resolveConfig.plugins
146
+ });
165
147
  }
166
- };
167
- },
168
- addRuntimeExports: function addRuntimeExports() {
169
- var config = api.useResolvedConfigContext();
170
- var masterApp = getRuntimeConfig(config).masterApp;
171
- var _api_useAppContext = api.useAppContext(), internalDirectory = _api_useAppContext.internalDirectory, metaName = _api_useAppContext.metaName;
172
- var pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
173
- if (masterApp) {
174
- var addExportStatement = "export { default as garfish, default as masterApp } from '@".concat(metaName, "/plugin-garfish/runtime'");
175
- logger("exportStatement", addExportStatement);
176
- pluginsExportsUtils.addExport(addExportStatement);
177
148
  }
178
- },
179
- generateEntryCode: function generateEntryCode(param) {
180
- var entrypoints = param.entrypoints;
181
- return _async_to_generator(function() {
182
- var _resolveOptions_deploy, resolveOptions, appContext, resolvedConfig, appendEntryCode2;
183
- return _ts_generator(this, function(_state) {
184
- switch (_state.label) {
185
- case 0:
186
- resolveOptions = api.useResolvedConfigContext();
187
- if (!(resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend))
188
- return [
189
- 3,
190
- 2
191
- ];
192
- appContext = api.useAppContext();
193
- resolvedConfig = api.useResolvedConfigContext();
194
- appendEntryCode2 = api.useHookRunners().appendEntryCode;
195
- return [
196
- 4,
197
- generateCode(entrypoints, appContext, resolvedConfig, appendEntryCode2)
198
- ];
199
- case 1:
200
- _state.sent();
201
- _state.label = 2;
202
- case 2:
149
+ };
150
+ });
151
+ api.addRuntimeExports(function() {
152
+ var config = api.getNormalizedConfig();
153
+ var masterApp = getRuntimeConfig(config).masterApp;
154
+ var _api_useAppContext = api.useAppContext(), internalDirectory = _api_useAppContext.internalDirectory, metaName = _api_useAppContext.metaName;
155
+ var pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
156
+ if (masterApp) {
157
+ var addExportStatement = "export { default as garfish, default as masterApp } from '@".concat(metaName, "/plugin-garfish/runtime'");
158
+ logger("exportStatement", addExportStatement);
159
+ pluginsExportsUtils.addExport(addExportStatement);
160
+ }
161
+ });
162
+ api.generateEntryCode(function() {
163
+ var _ref = _async_to_generator(function(param) {
164
+ var entrypoints, _resolveOptions_deploy, resolveOptions, appContext, resolvedConfig, hooks;
165
+ return _ts_generator(this, function(_state) {
166
+ switch (_state.label) {
167
+ case 0:
168
+ entrypoints = param.entrypoints;
169
+ resolveOptions = api.getNormalizedConfig();
170
+ if (!(resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend))
203
171
  return [
172
+ 3,
204
173
  2
205
174
  ];
206
- }
207
- });
208
- })();
209
- }
210
- };
175
+ appContext = api.getAppContext();
176
+ resolvedConfig = api.getNormalizedConfig();
177
+ hooks = api.getHooks();
178
+ return [
179
+ 4,
180
+ generateCode(entrypoints, appContext, resolvedConfig, hooks)
181
+ ];
182
+ case 1:
183
+ _state.sent();
184
+ _state.label = 2;
185
+ case 2:
186
+ return [
187
+ 2
188
+ ];
189
+ }
190
+ });
191
+ });
192
+ return function(_) {
193
+ return _ref.apply(this, arguments);
194
+ };
195
+ }());
211
196
  }
212
197
  };
213
198
  };
@@ -4,13 +4,13 @@ import * as template from "./template";
4
4
  import { generateAsyncEntryCode } from "./utils";
5
5
  const ENTRY_POINT_FILE_NAME = "index.jsx";
6
6
  const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.jsx";
7
- const generateCode = async (entrypoints, appContext, config, appendEntryCode) => {
7
+ const generateCode = async (entrypoints, appContext, config, hooks) => {
8
8
  const { mountId } = config.html;
9
9
  const { enableAsyncEntry } = config.source;
10
10
  const { internalDirectory, internalSrcAlias, metaName, srcDirectory } = appContext;
11
11
  await Promise.all(entrypoints.map(async (entrypoint) => {
12
12
  const { entryName, isAutoMount, entry, customEntry, customBootstrap } = entrypoint;
13
- const appendCode = await appendEntryCode({
13
+ const appendCode = await hooks.appendEntryCode.call({
14
14
  entrypoint
15
15
  });
16
16
  if (isAutoMount) {
@@ -1,4 +1,4 @@
1
- import { createAsyncWorkflow } from "@modern-js/plugin";
1
+ import { createCollectAsyncHook } from "@modern-js/plugin-v2";
2
2
  import { createRuntimeExportsUtils, getEntryOptions } from "@modern-js/utils";
3
3
  import { logger } from "../util";
4
4
  import { generateCode } from "./code";
@@ -21,160 +21,151 @@ function getDefaultMicroFrontedConfig(microFrontend) {
21
21
  ...microFrontend
22
22
  };
23
23
  }
24
- const appendEntryCode = createAsyncWorkflow();
25
24
  const garfishPlugin = () => ({
26
25
  name: "@modern-js/plugin-garfish",
27
26
  pre: [
28
27
  "@modern-js/runtime"
29
28
  ],
30
- registerHook: {
31
- appendEntryCode
29
+ registryHooks: {
30
+ appendEntryCode: createCollectAsyncHook()
32
31
  },
33
32
  setup: (api) => {
34
- return {
35
- _internalRuntimePlugins({ entrypoint, plugins }) {
36
- const userConfig = api.useResolvedConfigContext();
37
- const { packageName, metaName } = api.useAppContext();
38
- const runtimeConfig = getEntryOptions(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName);
39
- if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) {
40
- plugins.push({
41
- name: "garfish",
42
- path: `@${metaName}/plugin-garfish/runtime`,
43
- config: (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) || {}
44
- });
33
+ api._internalRuntimePlugins(({ entrypoint, plugins }) => {
34
+ const userConfig = api.getNormalizedConfig();
35
+ const { packageName, metaName } = api.getAppContext();
36
+ const runtimeConfig = getEntryOptions(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName);
37
+ if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) {
38
+ plugins.push({
39
+ name: "garfish",
40
+ path: `@${metaName}/plugin-garfish/runtime`,
41
+ config: (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.masterApp) || {}
42
+ });
43
+ }
44
+ return {
45
+ entrypoint,
46
+ plugins
47
+ };
48
+ });
49
+ api.modifyResolvedConfig((config) => {
50
+ const { masterApp, router } = getRuntimeConfig(config);
51
+ if (masterApp) {
52
+ var _useConfig_server, _router_historyOptions;
53
+ const useConfig = api.getConfig();
54
+ const baseUrl = useConfig === null || useConfig === void 0 ? void 0 : (_useConfig_server = useConfig.server) === null || _useConfig_server === void 0 ? void 0 : _useConfig_server.baseUrl;
55
+ if (Array.isArray(baseUrl)) {
56
+ throw new Error("Now Micro-Front-End mode dose not support multiple baseUrl, you can set it as a string");
45
57
  }
46
- return {
47
- entrypoint,
48
- plugins
49
- };
50
- },
51
- resolvedConfig: async (config) => {
52
- const { resolved } = config;
53
- const { masterApp, router } = getRuntimeConfig(resolved);
54
- const nConfig = {
55
- resolved: {
56
- ...resolved
57
- }
58
- };
59
- if (masterApp) {
60
- var _useConfig_server, _router_historyOptions;
61
- const useConfig = api.useConfigContext();
62
- const baseUrl = useConfig === null || useConfig === void 0 ? void 0 : (_useConfig_server = useConfig.server) === null || _useConfig_server === void 0 ? void 0 : _useConfig_server.baseUrl;
63
- if (Array.isArray(baseUrl)) {
64
- throw new Error("Now Micro-Front-End mode dose not support multiple baseUrl, you can set it as a string");
65
- }
66
- setRuntimeConfig(nConfig.resolved, "masterApp", Object.assign(typeof masterApp === "object" ? {
67
- ...masterApp
68
- } : {}, {
69
- basename: baseUrl || (router === null || router === void 0 ? void 0 : (_router_historyOptions = router.historyOptions) === null || _router_historyOptions === void 0 ? void 0 : _router_historyOptions.basename) || (router === null || router === void 0 ? void 0 : router.basename) || "/"
70
- }));
58
+ setRuntimeConfig(config, "masterApp", Object.assign(typeof masterApp === "object" ? {
59
+ ...masterApp
60
+ } : {}, {
61
+ basename: baseUrl || (router === null || router === void 0 ? void 0 : (_router_historyOptions = router.historyOptions) === null || _router_historyOptions === void 0 ? void 0 : _router_historyOptions.basename) || (router === null || router === void 0 ? void 0 : router.basename) || "/"
62
+ }));
63
+ }
64
+ logger(`resolvedConfig`, {
65
+ output: config.output,
66
+ runtime: config.runtime,
67
+ deploy: config.deploy,
68
+ server: config.server
69
+ });
70
+ return config;
71
+ });
72
+ api.config(() => {
73
+ var _useConfig_output, _useConfig_deploy;
74
+ const useConfig = api.getConfig();
75
+ const { metaName, packageName } = api.getAppContext();
76
+ logger("useConfig", useConfig);
77
+ let disableCssExtract = ((_useConfig_output = useConfig.output) === null || _useConfig_output === void 0 ? void 0 : _useConfig_output.disableCssExtract) || false;
78
+ if ((_useConfig_deploy = useConfig.deploy) === null || _useConfig_deploy === void 0 ? void 0 : _useConfig_deploy.microFrontend) {
79
+ var _useConfig_deploy1;
80
+ const { enableHtmlEntry } = getDefaultMicroFrontedConfig((_useConfig_deploy1 = useConfig.deploy) === null || _useConfig_deploy1 === void 0 ? void 0 : _useConfig_deploy1.microFrontend);
81
+ if (!enableHtmlEntry) {
82
+ disableCssExtract = true;
71
83
  }
72
- logger(`resolvedConfig`, {
73
- output: nConfig.resolved.output,
74
- runtime: nConfig.resolved.runtime,
75
- deploy: nConfig.resolved.deploy,
76
- server: nConfig.resolved.server
77
- });
78
- return nConfig;
79
- },
80
- config() {
81
- var _useConfig_output, _useConfig_deploy;
82
- const useConfig = api.useConfigContext();
83
- const { metaName, packageName } = api.useAppContext();
84
- logger("useConfig", useConfig);
85
- let disableCssExtract = ((_useConfig_output = useConfig.output) === null || _useConfig_output === void 0 ? void 0 : _useConfig_output.disableCssExtract) || false;
86
- if ((_useConfig_deploy = useConfig.deploy) === null || _useConfig_deploy === void 0 ? void 0 : _useConfig_deploy.microFrontend) {
87
- var _useConfig_deploy1;
88
- const { enableHtmlEntry } = getDefaultMicroFrontedConfig((_useConfig_deploy1 = useConfig.deploy) === null || _useConfig_deploy1 === void 0 ? void 0 : _useConfig_deploy1.microFrontend);
89
- if (!enableHtmlEntry) {
90
- disableCssExtract = true;
84
+ }
85
+ return {
86
+ output: {
87
+ disableCssExtract
88
+ },
89
+ source: {
90
+ alias: {
91
+ [`@${metaName}/runtime/garfish`]: `@${metaName}/plugin-garfish/runtime`
91
92
  }
92
- }
93
- return {
94
- output: {
95
- disableCssExtract
96
- },
97
- source: {
98
- alias: {
99
- [`@${metaName}/runtime/garfish`]: `@${metaName}/plugin-garfish/runtime`
93
+ },
94
+ tools: {
95
+ devServer: {
96
+ headers: {
97
+ "Access-Control-Allow-Origin": "*"
100
98
  }
101
99
  },
102
- tools: {
103
- devServer: {
104
- headers: {
105
- "Access-Control-Allow-Origin": "*"
106
- }
107
- },
108
- bundlerChain: (chain, { env, CHAIN_ID, bundler }) => {
109
- var _resolveOptions_deploy, _resolveConfig_resolve;
110
- if (bundler.BannerPlugin) {
111
- chain.plugin("garfish-banner").use(bundler.BannerPlugin, [
112
- {
113
- banner: "Micro front-end"
114
- }
115
- ]);
116
- }
117
- const resolveOptions = api.useResolvedConfigContext();
118
- if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
119
- var _resolveOptions_dev, _useConfig_dev, _resolveOptions_server, _resolveOptions_deploy1;
120
- chain.output.libraryTarget("umd");
121
- const DEFAULT_ASSET_PREFIX = "/";
122
- const resolvedAssetPrefix = (_resolveOptions_dev = resolveOptions.dev) === null || _resolveOptions_dev === void 0 ? void 0 : _resolveOptions_dev.assetPrefix;
123
- const isUsingDefaultAssetPrefix = !((_useConfig_dev = useConfig.dev) === null || _useConfig_dev === void 0 ? void 0 : _useConfig_dev.assetPrefix) && (!resolvedAssetPrefix || resolvedAssetPrefix === DEFAULT_ASSET_PREFIX);
124
- if (isUsingDefaultAssetPrefix && (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_server = resolveOptions.server) === null || _resolveOptions_server === void 0 ? void 0 : _resolveOptions_server.port) && env === "development") {
125
- chain.output.publicPath(`//localhost:${resolveOptions.server.port}/`);
126
- }
127
- const { enableHtmlEntry, externalBasicLibrary } = getDefaultMicroFrontedConfig((_resolveOptions_deploy1 = resolveOptions.deploy) === null || _resolveOptions_deploy1 === void 0 ? void 0 : _resolveOptions_deploy1.microFrontend);
128
- if (externalBasicLibrary) {
129
- chain.externals(externals);
130
- }
131
- if (!enableHtmlEntry) {
132
- chain.output.filename("index.js");
133
- chain.plugins.delete(`${CHAIN_ID.PLUGIN.HTML}-main`);
134
- chain.optimization.runtimeChunk(false);
135
- chain.optimization.splitChunks({
136
- chunks: "async"
137
- });
100
+ bundlerChain: (chain, { env, CHAIN_ID, bundler }) => {
101
+ var _resolveOptions_deploy, _resolveConfig_resolve;
102
+ if (bundler.BannerPlugin) {
103
+ chain.plugin("garfish-banner").use(bundler.BannerPlugin, [
104
+ {
105
+ banner: "Micro front-end"
138
106
  }
107
+ ]);
108
+ }
109
+ const resolveOptions = api.getNormalizedConfig();
110
+ if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
111
+ var _resolveOptions_dev, _useConfig_dev, _resolveOptions_server, _resolveOptions_deploy1;
112
+ chain.output.libraryTarget("umd");
113
+ const DEFAULT_ASSET_PREFIX = "/";
114
+ const resolvedAssetPrefix = (_resolveOptions_dev = resolveOptions.dev) === null || _resolveOptions_dev === void 0 ? void 0 : _resolveOptions_dev.assetPrefix;
115
+ const isUsingDefaultAssetPrefix = !((_useConfig_dev = useConfig.dev) === null || _useConfig_dev === void 0 ? void 0 : _useConfig_dev.assetPrefix) && (!resolvedAssetPrefix || resolvedAssetPrefix === DEFAULT_ASSET_PREFIX);
116
+ if (isUsingDefaultAssetPrefix && (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_server = resolveOptions.server) === null || _resolveOptions_server === void 0 ? void 0 : _resolveOptions_server.port) && env === "development") {
117
+ chain.output.publicPath(`//localhost:${resolveOptions.server.port}/`);
139
118
  }
140
- const uniqueName = chain.output.get("uniqueName");
141
- if (!uniqueName) {
142
- chain.output.uniqueName(packageName);
119
+ const { enableHtmlEntry, externalBasicLibrary } = getDefaultMicroFrontedConfig((_resolveOptions_deploy1 = resolveOptions.deploy) === null || _resolveOptions_deploy1 === void 0 ? void 0 : _resolveOptions_deploy1.microFrontend);
120
+ if (externalBasicLibrary) {
121
+ chain.externals(externals);
143
122
  }
144
- const resolveConfig = chain.toConfig();
145
- logger("bundlerConfig", {
146
- output: resolveConfig.output,
147
- externals: resolveConfig.externals,
148
- env,
149
- alias: (_resolveConfig_resolve = resolveConfig.resolve) === null || _resolveConfig_resolve === void 0 ? void 0 : _resolveConfig_resolve.alias,
150
- plugins: resolveConfig.plugins
151
- });
123
+ if (!enableHtmlEntry) {
124
+ chain.output.filename("index.js");
125
+ chain.plugins.delete(`${CHAIN_ID.PLUGIN.HTML}-main`);
126
+ chain.optimization.runtimeChunk(false);
127
+ chain.optimization.splitChunks({
128
+ chunks: "async"
129
+ });
130
+ }
131
+ }
132
+ const uniqueName = chain.output.get("uniqueName");
133
+ if (!uniqueName) {
134
+ chain.output.uniqueName(packageName);
152
135
  }
136
+ const resolveConfig = chain.toConfig();
137
+ logger("bundlerConfig", {
138
+ output: resolveConfig.output,
139
+ externals: resolveConfig.externals,
140
+ env,
141
+ alias: (_resolveConfig_resolve = resolveConfig.resolve) === null || _resolveConfig_resolve === void 0 ? void 0 : _resolveConfig_resolve.alias,
142
+ plugins: resolveConfig.plugins
143
+ });
153
144
  }
154
- };
155
- },
156
- addRuntimeExports() {
157
- const config = api.useResolvedConfigContext();
158
- const { masterApp } = getRuntimeConfig(config);
159
- const { internalDirectory, metaName } = api.useAppContext();
160
- const pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
161
- if (masterApp) {
162
- const addExportStatement = `export { default as garfish, default as masterApp } from '@${metaName}/plugin-garfish/runtime'`;
163
- logger("exportStatement", addExportStatement);
164
- pluginsExportsUtils.addExport(addExportStatement);
165
- }
166
- },
167
- async generateEntryCode({ entrypoints }) {
168
- var _resolveOptions_deploy;
169
- const resolveOptions = api.useResolvedConfigContext();
170
- if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
171
- const appContext = api.useAppContext();
172
- const resolvedConfig = api.useResolvedConfigContext();
173
- const { appendEntryCode: appendEntryCode2 } = api.useHookRunners();
174
- await generateCode(entrypoints, appContext, resolvedConfig, appendEntryCode2);
175
145
  }
146
+ };
147
+ });
148
+ api.addRuntimeExports(() => {
149
+ const config = api.getNormalizedConfig();
150
+ const { masterApp } = getRuntimeConfig(config);
151
+ const { internalDirectory, metaName } = api.useAppContext();
152
+ const pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
153
+ if (masterApp) {
154
+ const addExportStatement = `export { default as garfish, default as masterApp } from '@${metaName}/plugin-garfish/runtime'`;
155
+ logger("exportStatement", addExportStatement);
156
+ pluginsExportsUtils.addExport(addExportStatement);
176
157
  }
177
- };
158
+ });
159
+ api.generateEntryCode(async ({ entrypoints }) => {
160
+ var _resolveOptions_deploy;
161
+ const resolveOptions = api.getNormalizedConfig();
162
+ if (resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) {
163
+ const appContext = api.getAppContext();
164
+ const resolvedConfig = api.getNormalizedConfig();
165
+ const hooks = api.getHooks();
166
+ await generateCode(entrypoints, appContext, resolvedConfig, hooks);
167
+ }
168
+ });
178
169
  }
179
170
  });
180
171
  var cli_default = garfishPlugin;
@@ -1,7 +1,4 @@
1
- import type { AppTools, IAppContext, NormalizedConfig } from '@modern-js/app-tools';
2
- import type { MaybeAsync } from '@modern-js/plugin';
1
+ import type { AppTools, AppToolsContext, AppToolsFeatureHooks, NormalizedConfig } from '@modern-js/app-tools';
3
2
  import type { Entrypoint } from '@modern-js/types';
4
3
  export declare const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.jsx";
5
- export declare const generateCode: (entrypoints: Entrypoint[], appContext: IAppContext, config: NormalizedConfig<AppTools>, appendEntryCode: (input: {
6
- entrypoint: Entrypoint;
7
- }) => MaybeAsync<string[]>) => Promise<void>;
4
+ export declare const generateCode: (entrypoints: Entrypoint[], appContext: AppToolsContext<'shared'>, config: NormalizedConfig<AppTools>, hooks: AppToolsFeatureHooks<'shared'>) => Promise<void>;
@@ -1,7 +1,5 @@
1
- import type { AppTools, CliPlugin } from '@modern-js/app-tools';
1
+ import type { AppTools, CliPluginFuture } from '@modern-js/app-tools';
2
2
  import type { CliHookCallbacks, useConfigContext } from '@modern-js/core';
3
- import { type AsyncWorkflow } from '@modern-js/plugin';
4
- import type { Entrypoint } from '@modern-js/types';
5
3
  export type UseConfig = ReturnType<typeof useConfigContext>;
6
4
  export declare const externals: {
7
5
  'react-dom': string;
@@ -10,14 +8,5 @@ export declare const externals: {
10
8
  export type LifeCycle = CliHookCallbacks;
11
9
  type NonInValidAble<T> = T extends null | undefined | false ? never : T;
12
10
  export declare function getDefaultMicroFrontedConfig(microFrontend: NonInValidAble<NonNullable<UseConfig['deploy']>['microFrontend']>): any;
13
- declare const appendEntryCode: AsyncWorkflow<{
14
- entrypoint: Entrypoint;
15
- }, string>;
16
- export declare const garfishPlugin: () => CliPlugin<AppTools & {
17
- hooks: {
18
- appendEntryCode: AsyncWorkflow<{
19
- entrypoint: Entrypoint;
20
- }, string>;
21
- };
22
- }>;
11
+ export declare const garfishPlugin: () => CliPluginFuture<AppTools<'shared'>>;
23
12
  export default garfishPlugin;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.63.3",
18
+ "version": "2.63.4",
19
19
  "jsnext:source": "./src/cli/index.ts",
20
20
  "types": "./dist/types/cli/index.d.ts",
21
21
  "typesVersions": {
@@ -69,12 +69,12 @@
69
69
  "debug": "4.3.7",
70
70
  "garfish": "^1.8.1",
71
71
  "react-loadable": "^5.5.0",
72
- "@modern-js/plugin": "2.63.3",
73
- "@modern-js/runtime-utils": "2.63.3",
74
- "@modern-js/utils": "2.63.3"
72
+ "@modern-js/plugin-v2": "2.63.4",
73
+ "@modern-js/runtime-utils": "2.63.4",
74
+ "@modern-js/utils": "2.63.4"
75
75
  },
76
76
  "peerDependencies": {
77
- "@modern-js/runtime": "^2.63.3",
77
+ "@modern-js/runtime": "^2.63.4",
78
78
  "react": ">=17",
79
79
  "react-dom": ">=17"
80
80
  },
@@ -93,13 +93,13 @@
93
93
  "react-dom": "^18.3.1",
94
94
  "react-router-dom": "6.27.0",
95
95
  "typescript": "^5",
96
- "@modern-js/app-tools": "2.63.3",
97
- "@modern-js/runtime": "2.63.3",
98
- "@modern-js/types": "2.63.3",
99
- "@modern-js/core": "2.63.3",
100
- "@scripts/build": "2.63.3",
101
- "@modern-js/plugin-router-v5": "2.63.3",
102
- "@scripts/jest-config": "2.63.3"
96
+ "@modern-js/app-tools": "2.63.4",
97
+ "@modern-js/core": "2.63.4",
98
+ "@modern-js/runtime": "2.63.4",
99
+ "@modern-js/plugin-router-v5": "2.63.4",
100
+ "@scripts/build": "2.63.4",
101
+ "@scripts/jest-config": "2.63.4",
102
+ "@modern-js/types": "2.63.4"
103
103
  },
104
104
  "sideEffects": false,
105
105
  "publishConfig": {