@modern-js/plugin-garfish 2.35.0 → 2.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli/index.js +75 -76
- package/dist/cjs/cli/utils.js +39 -32
- package/dist/cjs/deps/index.js +35 -9
- package/dist/cjs/index.js +37 -10
- package/dist/cjs/runtime/index.js +43 -28
- package/dist/cjs/runtime/loadable.js +37 -20
- package/dist/cjs/runtime/plugin.js +68 -54
- package/dist/cjs/runtime/useModuleApps.js +43 -24
- package/dist/cjs/runtime/utils/Context.js +37 -18
- package/dist/cjs/runtime/utils/MApp.js +69 -52
- package/dist/cjs/runtime/utils/apps.js +72 -61
- package/dist/cjs/runtime/utils/setExternal.js +40 -18
- package/dist/cjs/util.js +40 -23
- package/dist/esm/cli/index.js +50 -53
- package/dist/esm/cli/utils.js +20 -13
- package/dist/esm/deps/index.js +4 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/runtime/index.js +10 -3
- package/dist/esm/runtime/loadable.js +10 -7
- package/dist/esm/runtime/plugin.js +19 -18
- package/dist/esm/runtime/useModuleApps.js +8 -4
- package/dist/esm/runtime/utils/Context.js +4 -1
- package/dist/esm/runtime/utils/MApp.js +17 -23
- package/dist/esm/runtime/utils/apps.js +25 -26
- package/dist/esm/runtime/utils/setExternal.js +4 -1
- package/dist/esm/util.js +9 -5
- package/dist/esm-node/cli/index.js +36 -38
- package/dist/esm-node/cli/utils.js +20 -13
- package/dist/esm-node/deps/index.js +4 -1
- package/dist/esm-node/index.js +4 -1
- package/dist/esm-node/runtime/index.js +10 -3
- package/dist/esm-node/runtime/loadable.js +6 -3
- package/dist/esm-node/runtime/plugin.js +10 -10
- package/dist/esm-node/runtime/useModuleApps.js +6 -2
- package/dist/esm-node/runtime/utils/Context.js +4 -1
- package/dist/esm-node/runtime/utils/MApp.js +13 -19
- package/dist/esm-node/runtime/utils/apps.js +18 -21
- package/dist/esm-node/runtime/utils/setExternal.js +4 -1
- package/dist/esm-node/util.js +9 -5
- package/package.json +10 -10
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createRuntimeExportsUtils } from "@modern-js/utils";
|
|
2
2
|
import { logger } from "../util";
|
|
3
3
|
import { getRuntimeConfig, makeProvider, makeRenderFunction, setRuntimeConfig, generateAsyncEntry } from "./utils";
|
|
4
|
-
|
|
4
|
+
const externals = {
|
|
5
5
|
"react-dom": "react-dom",
|
|
6
6
|
react: "react"
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
function getDefaultMicroFrontedConfig(microFrontend) {
|
|
9
9
|
if (microFrontend === true) {
|
|
10
10
|
return {
|
|
11
11
|
enableHtmlEntry: true,
|
|
@@ -19,7 +19,7 @@ export function getDefaultMicroFrontedConfig(microFrontend) {
|
|
|
19
19
|
...microFrontend
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
const garfishPlugin = ({ pluginName = "@modern-js/plugin-garfish", runtimePluginName = "@modern-js/runtime/plugins" } = {}) => ({
|
|
23
23
|
name: "@modern-js/plugin-garfish",
|
|
24
24
|
setup: ({ useAppContext, useResolvedConfigContext, useConfigContext }) => {
|
|
25
25
|
let pluginsExportsUtils;
|
|
@@ -63,16 +63,16 @@ export const garfishPlugin = ({ pluginName = "@modern-js/plugin-garfish", runtim
|
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
if (masterApp) {
|
|
66
|
-
var _useConfig_server,
|
|
66
|
+
var _useConfig_server, _router_historyOptions;
|
|
67
67
|
const useConfig = useConfigContext();
|
|
68
|
-
const baseUrl =
|
|
68
|
+
const baseUrl = useConfig === null || useConfig === void 0 ? void 0 : (_useConfig_server = useConfig.server) === null || _useConfig_server === void 0 ? void 0 : _useConfig_server.baseUrl;
|
|
69
69
|
if (Array.isArray(baseUrl)) {
|
|
70
70
|
throw new Error("Now Micro-Front-End mode dose not support multiple baseUrl, you can set it as a string");
|
|
71
71
|
}
|
|
72
72
|
setRuntimeConfig(nConfig.resolved, "masterApp", Object.assign(typeof masterApp === "object" ? {
|
|
73
73
|
...masterApp
|
|
74
74
|
} : {}, {
|
|
75
|
-
basename: baseUrl || (
|
|
75
|
+
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) || "/"
|
|
76
76
|
}));
|
|
77
77
|
}
|
|
78
78
|
logger(`resolvedConfig`, {
|
|
@@ -113,41 +113,33 @@ export const garfishPlugin = ({ pluginName = "@modern-js/plugin-garfish", runtim
|
|
|
113
113
|
"Access-Control-Allow-Origin": "*"
|
|
114
114
|
}
|
|
115
115
|
},
|
|
116
|
-
webpackChain: (chain, { webpack, CHAIN_ID }) => {
|
|
117
|
-
if (webpack.BannerPlugin) {
|
|
118
|
-
chain.plugin(CHAIN_ID.PLUGIN.BANNER).use(webpack.BannerPlugin, [
|
|
119
|
-
{
|
|
120
|
-
banner: "Micro front-end"
|
|
121
|
-
}
|
|
122
|
-
]);
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
116
|
rspack: (config2) => {
|
|
126
|
-
var _resolveOptions_deploy
|
|
117
|
+
var _resolveOptions_deploy;
|
|
127
118
|
var _config;
|
|
128
119
|
var _builtins;
|
|
129
120
|
(_builtins = (_config = config2).builtins) !== null && _builtins !== void 0 ? _builtins : _config.builtins = {};
|
|
130
121
|
const resolveOptions = useResolvedConfigContext();
|
|
131
|
-
if ((
|
|
122
|
+
if ((resolveOptions === null || resolveOptions === void 0 ? void 0 : (_resolveOptions_deploy = resolveOptions.deploy) === null || _resolveOptions_deploy === void 0 ? void 0 : _resolveOptions_deploy.microFrontend) && !config2.externalsType) {
|
|
132
123
|
config2.externalsType = "commonjs";
|
|
133
124
|
}
|
|
134
|
-
const banner = config2.builtins.banner || [];
|
|
135
|
-
config2.builtins.banner = [
|
|
136
|
-
...Array.isArray(banner) ? banner : [
|
|
137
|
-
banner
|
|
138
|
-
],
|
|
139
|
-
{
|
|
140
|
-
banner: "Micro front-end"
|
|
141
|
-
}
|
|
142
|
-
];
|
|
143
125
|
},
|
|
144
|
-
bundlerChain: (chain, { env, CHAIN_ID }) => {
|
|
145
|
-
var _resolveOptions_deploy,
|
|
126
|
+
bundlerChain: (chain, { env, CHAIN_ID, bundler }) => {
|
|
127
|
+
var _resolveOptions_deploy, _resolveConfig_resolve;
|
|
128
|
+
if (bundler.BannerPlugin) {
|
|
129
|
+
chain.plugin(CHAIN_ID.PLUGIN.BANNER).use(bundler.BannerPlugin, [
|
|
130
|
+
{
|
|
131
|
+
banner: "Micro front-end"
|
|
132
|
+
}
|
|
133
|
+
]);
|
|
134
|
+
}
|
|
146
135
|
const resolveOptions = useResolvedConfigContext();
|
|
147
|
-
if (
|
|
148
|
-
var _useConfig_dev, _resolveOptions_server,
|
|
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;
|
|
149
138
|
chain.output.libraryTarget("umd");
|
|
150
|
-
|
|
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") {
|
|
151
143
|
chain.output.publicPath(`//localhost:${resolveOptions.server.port}/`);
|
|
152
144
|
}
|
|
153
145
|
const { enableHtmlEntry, externalBasicLibrary } = getDefaultMicroFrontedConfig((_resolveOptions_deploy1 = resolveOptions.deploy) === null || _resolveOptions_deploy1 === void 0 ? void 0 : _resolveOptions_deploy1.microFrontend);
|
|
@@ -253,9 +245,9 @@ export const garfishPlugin = ({ pluginName = "@modern-js/plugin-garfish", runtim
|
|
|
253
245
|
};
|
|
254
246
|
},
|
|
255
247
|
modifyEntryRenderFunction({ entrypoint, code }) {
|
|
256
|
-
var _config_deploy
|
|
248
|
+
var _config_deploy;
|
|
257
249
|
const config = useResolvedConfigContext();
|
|
258
|
-
if (!(
|
|
250
|
+
if (!(config === null || config === void 0 ? void 0 : (_config_deploy = config.deploy) === null || _config_deploy === void 0 ? void 0 : _config_deploy.microFrontend)) {
|
|
259
251
|
return {
|
|
260
252
|
entrypoint,
|
|
261
253
|
code
|
|
@@ -269,10 +261,10 @@ export const garfishPlugin = ({ pluginName = "@modern-js/plugin-garfish", runtim
|
|
|
269
261
|
};
|
|
270
262
|
},
|
|
271
263
|
modifyAsyncEntry({ entrypoint, code }) {
|
|
272
|
-
var _config_deploy,
|
|
264
|
+
var _config_deploy, _config_source;
|
|
273
265
|
const config = useResolvedConfigContext();
|
|
274
266
|
let finalCode = code;
|
|
275
|
-
if ((
|
|
267
|
+
if ((config === null || config === void 0 ? void 0 : (_config_deploy = config.deploy) === null || _config_deploy === void 0 ? void 0 : _config_deploy.microFrontend) && (config === null || config === void 0 ? void 0 : (_config_source = config.source) === null || _config_source === void 0 ? void 0 : _config_source.enableAsyncEntry)) {
|
|
276
268
|
finalCode = generateAsyncEntry(code);
|
|
277
269
|
return {
|
|
278
270
|
entrypoint,
|
|
@@ -285,9 +277,9 @@ export const garfishPlugin = ({ pluginName = "@modern-js/plugin-garfish", runtim
|
|
|
285
277
|
};
|
|
286
278
|
},
|
|
287
279
|
modifyEntryExport({ entrypoint, exportStatement }) {
|
|
288
|
-
var _config_deploy
|
|
280
|
+
var _config_deploy;
|
|
289
281
|
const config = useResolvedConfigContext();
|
|
290
|
-
if (
|
|
282
|
+
if (config === null || config === void 0 ? void 0 : (_config_deploy = config.deploy) === null || _config_deploy === void 0 ? void 0 : _config_deploy.microFrontend) {
|
|
291
283
|
const exportStatementCode = makeProvider();
|
|
292
284
|
logger("exportStatement", exportStatementCode);
|
|
293
285
|
return {
|
|
@@ -303,4 +295,10 @@ export const garfishPlugin = ({ pluginName = "@modern-js/plugin-garfish", runtim
|
|
|
303
295
|
};
|
|
304
296
|
}
|
|
305
297
|
});
|
|
306
|
-
|
|
298
|
+
var cli_default = garfishPlugin;
|
|
299
|
+
export {
|
|
300
|
+
cli_default as default,
|
|
301
|
+
externals,
|
|
302
|
+
garfishPlugin,
|
|
303
|
+
getDefaultMicroFrontedConfig
|
|
304
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const makeProvider = () => `
|
|
2
2
|
export const provider = function ({basename, dom}) {
|
|
3
3
|
return {
|
|
4
4
|
render({basename, dom, props, appName}) {
|
|
@@ -76,7 +76,7 @@ function generateRootDom ({ dom, props, basename }) {
|
|
|
76
76
|
return { mountNode, props: mergedProps }
|
|
77
77
|
}
|
|
78
78
|
`;
|
|
79
|
-
|
|
79
|
+
const makeRenderFunction = (code) => {
|
|
80
80
|
const inGarfishToRender = `
|
|
81
81
|
let { basename, props, dom, appName } = typeof arguments[0] === 'object' && arguments[0] || {};
|
|
82
82
|
if (!canContinueRender({ dom, appName })) return null;
|
|
@@ -86,27 +86,27 @@ export const makeRenderFunction = (code) => {
|
|
|
86
86
|
`;
|
|
87
87
|
return inGarfishToRender + code.replace(`router(`, `generateRouterPlugin(basename,`).replace(/MOUNT_ID/g, "mountNode").replace(`createApp({`, "createApp({ props,").replace(`bootstrap(AppWrapper, mountNode, root`, "bootstrap(AppWrapper, mountNode, root = IS_REACT18 ? ReactDOM.createRoot(mountNode) : null").replace(`customBootstrap(AppWrapper`, "customBootstrap(AppWrapper, mountNode");
|
|
88
88
|
};
|
|
89
|
-
|
|
90
|
-
var _config_runtime
|
|
91
|
-
if (
|
|
92
|
-
var _config_runtime1
|
|
93
|
-
return
|
|
89
|
+
function getRuntimeConfig(config) {
|
|
90
|
+
var _config_runtime;
|
|
91
|
+
if (config === null || config === void 0 ? void 0 : (_config_runtime = config.runtime) === null || _config_runtime === void 0 ? void 0 : _config_runtime.features) {
|
|
92
|
+
var _config_runtime1;
|
|
93
|
+
return config === null || config === void 0 ? void 0 : (_config_runtime1 = config.runtime) === null || _config_runtime1 === void 0 ? void 0 : _config_runtime1.features;
|
|
94
94
|
}
|
|
95
|
-
return (
|
|
95
|
+
return (config === null || config === void 0 ? void 0 : config.runtime) || {};
|
|
96
96
|
}
|
|
97
|
-
|
|
98
|
-
var _config_runtime,
|
|
99
|
-
if ((
|
|
97
|
+
function setRuntimeConfig(config, key, value) {
|
|
98
|
+
var _config_runtime, _config_runtime1;
|
|
99
|
+
if ((config === null || config === void 0 ? void 0 : (_config_runtime = config.runtime) === null || _config_runtime === void 0 ? void 0 : _config_runtime.features) && (config === null || config === void 0 ? void 0 : (_config_runtime1 = config.runtime) === null || _config_runtime1 === void 0 ? void 0 : _config_runtime1.features[key])) {
|
|
100
100
|
config.runtime.features[key] = value;
|
|
101
101
|
return void 0;
|
|
102
102
|
}
|
|
103
|
-
if ((
|
|
103
|
+
if ((config === null || config === void 0 ? void 0 : config.runtime) && (config === null || config === void 0 ? void 0 : config.runtime[key])) {
|
|
104
104
|
config.runtime[key] = value;
|
|
105
105
|
return void 0;
|
|
106
106
|
}
|
|
107
107
|
return void 0;
|
|
108
108
|
}
|
|
109
|
-
|
|
109
|
+
const generateAsyncEntry = (code) => {
|
|
110
110
|
const transformCode = code.replace(`import('./bootstrap.jsx');`, `if (!window.__GARFISH__) { import('./bootstrap.jsx'); }`);
|
|
111
111
|
return `
|
|
112
112
|
export const provider = async (...args) => {
|
|
@@ -119,3 +119,10 @@ export const generateAsyncEntry = (code) => {
|
|
|
119
119
|
}
|
|
120
120
|
`;
|
|
121
121
|
};
|
|
122
|
+
export {
|
|
123
|
+
generateAsyncEntry,
|
|
124
|
+
getRuntimeConfig,
|
|
125
|
+
makeProvider,
|
|
126
|
+
makeRenderFunction,
|
|
127
|
+
setRuntimeConfig
|
|
128
|
+
};
|
package/dist/esm-node/index.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { default as default2 } from "./plugin";
|
|
2
|
+
import { useModuleApps, useModuleApp } from "./useModuleApps";
|
|
3
|
+
import { default as default3, default as default4 } from "garfish";
|
|
4
|
+
export {
|
|
5
|
+
default3 as Garfish,
|
|
6
|
+
default2 as default,
|
|
7
|
+
default4 as garfish,
|
|
8
|
+
useModuleApp,
|
|
9
|
+
useModuleApps
|
|
10
|
+
};
|
|
@@ -6,10 +6,10 @@ const DEFAULT_LOADABLE = {
|
|
|
6
6
|
timeout: 1e4,
|
|
7
7
|
loading: null
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
function Loadable(WrapComponent) {
|
|
10
10
|
return function(defaultLoadable) {
|
|
11
11
|
return function Lodable(props) {
|
|
12
|
-
var _props_loadable
|
|
12
|
+
var _props_loadable;
|
|
13
13
|
const { loadable = defaultLoadable !== null && defaultLoadable !== void 0 ? defaultLoadable : DEFAULT_LOADABLE, ...otherProps } = props;
|
|
14
14
|
let delayTimer = null;
|
|
15
15
|
let timeoutTimer = null;
|
|
@@ -89,7 +89,7 @@ export function Loadable(WrapComponent) {
|
|
|
89
89
|
isLoading: state.isLoading,
|
|
90
90
|
pastDelay: state.pastDelay,
|
|
91
91
|
timedOut: state.timedOut,
|
|
92
|
-
error:
|
|
92
|
+
error: state === null || state === void 0 ? void 0 : state.error,
|
|
93
93
|
retry
|
|
94
94
|
}),
|
|
95
95
|
/* @__PURE__ */ _jsx(WrapComponent, {
|
|
@@ -109,3 +109,6 @@ export function Loadable(WrapComponent) {
|
|
|
109
109
|
};
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
+
export {
|
|
113
|
+
Loadable
|
|
114
|
+
};
|
|
@@ -9,19 +9,16 @@ import setExternal from "./utils/setExternal";
|
|
|
9
9
|
import { generateMApp } from "./utils/MApp";
|
|
10
10
|
import { generateApps } from "./utils/apps";
|
|
11
11
|
async function initOptions(manifest = {}, options) {
|
|
12
|
-
var
|
|
12
|
+
var _window_modern_manifest, _window, _window_modern_manifest1, _window1;
|
|
13
13
|
let apps = options.apps || [];
|
|
14
|
-
if (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var _manifest3;
|
|
18
|
-
apps = (_manifest3 = manifest) === null || _manifest3 === void 0 ? void 0 : _manifest3.modules;
|
|
14
|
+
if (manifest === null || manifest === void 0 ? void 0 : manifest.modules) {
|
|
15
|
+
if ((manifest === null || manifest === void 0 ? void 0 : manifest.modules.length) > 0) {
|
|
16
|
+
apps = manifest === null || manifest === void 0 ? void 0 : manifest.modules;
|
|
19
17
|
}
|
|
20
18
|
logger("manifest modules", apps);
|
|
21
19
|
}
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
const getAppList = await ((_manifest4 = manifest) === null || _manifest4 === void 0 ? void 0 : _manifest4.getAppList(manifest));
|
|
20
|
+
if (manifest === null || manifest === void 0 ? void 0 : manifest.getAppList) {
|
|
21
|
+
const getAppList = await (manifest === null || manifest === void 0 ? void 0 : manifest.getAppList(manifest));
|
|
25
22
|
if (getAppList.length > 0) {
|
|
26
23
|
apps = getAppList;
|
|
27
24
|
}
|
|
@@ -37,7 +34,7 @@ async function initOptions(manifest = {}, options) {
|
|
|
37
34
|
apps
|
|
38
35
|
};
|
|
39
36
|
}
|
|
40
|
-
|
|
37
|
+
var plugin_default = (config) => ({
|
|
41
38
|
name: "@modern-js/garfish-plugin",
|
|
42
39
|
setup: () => {
|
|
43
40
|
setExternal();
|
|
@@ -108,3 +105,6 @@ export default (config) => ({
|
|
|
108
105
|
};
|
|
109
106
|
}
|
|
110
107
|
});
|
|
108
|
+
export {
|
|
109
|
+
plugin_default as default
|
|
110
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useContext } from "react";
|
|
2
2
|
import { logger } from "../util";
|
|
3
3
|
import { GarfishContext } from "./utils/Context";
|
|
4
|
-
|
|
4
|
+
function useModuleApps() {
|
|
5
5
|
const { apps, MApp, appInfoList } = useContext(GarfishContext);
|
|
6
6
|
logger("call useModuleApps", {
|
|
7
7
|
MApp,
|
|
@@ -22,8 +22,12 @@ export function useModuleApps() {
|
|
|
22
22
|
});
|
|
23
23
|
return Info;
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
function useModuleApp() {
|
|
26
26
|
const { MApp } = useContext(GarfishContext);
|
|
27
27
|
logger("call useModuleApps", MApp);
|
|
28
28
|
return MApp;
|
|
29
29
|
}
|
|
30
|
+
export {
|
|
31
|
+
useModuleApp,
|
|
32
|
+
useModuleApps
|
|
33
|
+
};
|
|
@@ -4,8 +4,7 @@ import React from "react";
|
|
|
4
4
|
import Garfish from "garfish";
|
|
5
5
|
import { logger, generateSubAppContainerKey } from "../../util";
|
|
6
6
|
import { Loadable } from "../loadable";
|
|
7
|
-
|
|
8
|
-
var _manifest;
|
|
7
|
+
function generateMApp(options, manifest) {
|
|
9
8
|
class MApp extends React.Component {
|
|
10
9
|
componentDidMount() {
|
|
11
10
|
const { domId } = this.state;
|
|
@@ -17,7 +16,6 @@ export function generateMApp(options, manifest) {
|
|
|
17
16
|
const garfishOptions = {
|
|
18
17
|
domGetter: `#${domId}`,
|
|
19
18
|
beforeLoad(appInfo, ...args) {
|
|
20
|
-
var _beforeLoad;
|
|
21
19
|
logger("MApp beforeLoad", [
|
|
22
20
|
appInfo
|
|
23
21
|
]);
|
|
@@ -27,52 +25,47 @@ export function generateMApp(options, manifest) {
|
|
|
27
25
|
error: null
|
|
28
26
|
});
|
|
29
27
|
}
|
|
30
|
-
return
|
|
28
|
+
return beforeLoad === null || beforeLoad === void 0 ? void 0 : beforeLoad(appInfo, ...args);
|
|
31
29
|
},
|
|
32
30
|
beforeMount(appInfo, ...args) {
|
|
33
|
-
var _beforeMount;
|
|
34
31
|
logger("MApp beforeMount", args);
|
|
35
32
|
if (appInfo.activeWhen) {
|
|
36
33
|
setLoadingState({
|
|
37
34
|
isLoading: false
|
|
38
35
|
});
|
|
39
36
|
}
|
|
40
|
-
return
|
|
37
|
+
return beforeMount === null || beforeMount === void 0 ? void 0 : beforeMount(appInfo, ...args);
|
|
41
38
|
},
|
|
42
39
|
errorLoadApp(error, appInfo, ...args) {
|
|
43
|
-
var _errorLoadApp;
|
|
44
40
|
logger("MApp errorLoadApp", error, args);
|
|
45
41
|
if (appInfo.activeWhen) {
|
|
46
42
|
setLoadingState({
|
|
47
43
|
error
|
|
48
44
|
});
|
|
49
45
|
}
|
|
50
|
-
return
|
|
46
|
+
return errorLoadApp === null || errorLoadApp === void 0 ? void 0 : errorLoadApp(error, appInfo, ...args);
|
|
51
47
|
},
|
|
52
48
|
errorMountApp(error, appInfo, ...args) {
|
|
53
|
-
var _errorMountApp;
|
|
54
49
|
logger("MApp errorMountApp", error, args);
|
|
55
50
|
if (appInfo.activeWhen) {
|
|
56
51
|
setLoadingState({
|
|
57
52
|
error
|
|
58
53
|
});
|
|
59
54
|
}
|
|
60
|
-
return
|
|
55
|
+
return errorMountApp === null || errorMountApp === void 0 ? void 0 : errorMountApp(error, appInfo, ...args);
|
|
61
56
|
},
|
|
62
57
|
errorUnmountApp(error, appInfo, ...args) {
|
|
63
|
-
var _errorUnmountApp;
|
|
64
58
|
logger("MApp errorUnmountApp", error, args);
|
|
65
59
|
if (appInfo.activeWhen) {
|
|
66
60
|
setLoadingState({
|
|
67
61
|
error
|
|
68
62
|
});
|
|
69
63
|
}
|
|
70
|
-
return
|
|
64
|
+
return errorUnmountApp === null || errorUnmountApp === void 0 ? void 0 : errorUnmountApp(error, appInfo, ...args);
|
|
71
65
|
},
|
|
72
66
|
customLoader: (provider) => {
|
|
73
|
-
var _manifest2;
|
|
74
67
|
const { render, destroy, SubModuleComponent, jupiter_submodule_app_key } = provider;
|
|
75
|
-
const componetRenderMode = (
|
|
68
|
+
const componetRenderMode = (manifest === null || manifest === void 0 ? void 0 : manifest.componentRender) && (SubModuleComponent || jupiter_submodule_app_key);
|
|
76
69
|
return {
|
|
77
70
|
mount: (appInfo) => {
|
|
78
71
|
const transferProps = this.filterTransferProps();
|
|
@@ -86,15 +79,13 @@ export function generateMApp(options, manifest) {
|
|
|
86
79
|
});
|
|
87
80
|
return void 0;
|
|
88
81
|
} else {
|
|
89
|
-
var _render;
|
|
90
82
|
logger("MicroApp customer render", appInfo);
|
|
91
|
-
return
|
|
83
|
+
return render === null || render === void 0 ? void 0 : render.apply(provider, [
|
|
92
84
|
appInfo
|
|
93
85
|
]);
|
|
94
86
|
}
|
|
95
87
|
},
|
|
96
88
|
unmount: (appInfo) => {
|
|
97
|
-
var _destroy;
|
|
98
89
|
const transferProps = this.filterTransferProps();
|
|
99
90
|
appInfo.props = {
|
|
100
91
|
...appInfo.props,
|
|
@@ -104,7 +95,7 @@ export function generateMApp(options, manifest) {
|
|
|
104
95
|
return void 0;
|
|
105
96
|
}
|
|
106
97
|
logger("MicroApp customer destroy", appInfo);
|
|
107
|
-
return
|
|
98
|
+
return destroy === null || destroy === void 0 ? void 0 : destroy.apply(provider, [
|
|
108
99
|
appInfo
|
|
109
100
|
]);
|
|
110
101
|
}
|
|
@@ -147,5 +138,8 @@ export function generateMApp(options, manifest) {
|
|
|
147
138
|
});
|
|
148
139
|
}
|
|
149
140
|
}
|
|
150
|
-
return Loadable(MApp)(
|
|
141
|
+
return Loadable(MApp)(manifest === null || manifest === void 0 ? void 0 : manifest.loadable);
|
|
151
142
|
}
|
|
143
|
+
export {
|
|
144
|
+
generateMApp
|
|
145
|
+
};
|
|
@@ -4,7 +4,7 @@ import { RuntimeReactContext } from "@modern-js/runtime";
|
|
|
4
4
|
import Garfish from "garfish";
|
|
5
5
|
import { logger, generateSubAppContainerKey } from "../../util";
|
|
6
6
|
import { Loadable } from "../loadable";
|
|
7
|
-
|
|
7
|
+
function pathJoin(...args) {
|
|
8
8
|
const res = args.reduce((res2, path) => {
|
|
9
9
|
let nPath = path;
|
|
10
10
|
if (!nPath || typeof nPath !== "string") {
|
|
@@ -22,18 +22,17 @@ export function pathJoin(...args) {
|
|
|
22
22
|
return res || "/";
|
|
23
23
|
}
|
|
24
24
|
function getAppInstance(options, appInfo, manifest) {
|
|
25
|
-
var _manifest;
|
|
26
25
|
let locationHref = "";
|
|
27
26
|
function MicroApp(props) {
|
|
28
|
-
var _context_router_useRouteMatch, _context_router,
|
|
27
|
+
var _context_router_useRouteMatch, _context_router, _context_router_useMatches, _context_router1, _context_router_useLocation, _context_router2;
|
|
29
28
|
const appRef = useRef(null);
|
|
30
29
|
const domId = generateSubAppContainerKey(appInfo);
|
|
31
30
|
const [SubModuleComponent, setSubModuleComponent] = useState();
|
|
32
31
|
const context = useContext(RuntimeReactContext);
|
|
33
|
-
const match =
|
|
34
|
-
const matchs =
|
|
35
|
-
const location =
|
|
36
|
-
let basename = (
|
|
32
|
+
const match = context === null || context === void 0 ? void 0 : (_context_router = context.router) === null || _context_router === void 0 ? void 0 : (_context_router_useRouteMatch = _context_router.useRouteMatch) === null || _context_router_useRouteMatch === void 0 ? void 0 : _context_router_useRouteMatch.call(_context_router);
|
|
33
|
+
const matchs = context === null || context === void 0 ? void 0 : (_context_router1 = context.router) === null || _context_router1 === void 0 ? void 0 : (_context_router_useMatches = _context_router1.useMatches) === null || _context_router_useMatches === void 0 ? void 0 : _context_router_useMatches.call(_context_router1);
|
|
34
|
+
const location = context === null || context === void 0 ? void 0 : (_context_router2 = context.router) === null || _context_router2 === void 0 ? void 0 : (_context_router_useLocation = _context_router2.useLocation) === null || _context_router_useLocation === void 0 ? void 0 : _context_router_useLocation.call(_context_router2);
|
|
35
|
+
let basename = (options === null || options === void 0 ? void 0 : options.basename) || "/";
|
|
37
36
|
if (matchs && matchs.length > 0) {
|
|
38
37
|
const matchItem = {
|
|
39
38
|
...matchs[matchs.length - 1]
|
|
@@ -43,8 +42,7 @@ function getAppInstance(options, appInfo, manifest) {
|
|
|
43
42
|
}
|
|
44
43
|
basename = pathJoin(basename, matchItem.pathname || "/");
|
|
45
44
|
} else if (match) {
|
|
46
|
-
|
|
47
|
-
basename = pathJoin(basename, ((_match = match) === null || _match === void 0 ? void 0 : _match.path) || "/");
|
|
45
|
+
basename = pathJoin(basename, (match === null || match === void 0 ? void 0 : match.path) || "/");
|
|
48
46
|
}
|
|
49
47
|
useEffect(() => {
|
|
50
48
|
if (location && locationHref !== location.pathname && !Garfish.running) {
|
|
@@ -73,27 +71,24 @@ function getAppInstance(options, appInfo, manifest) {
|
|
|
73
71
|
...userProps
|
|
74
72
|
},
|
|
75
73
|
customLoader: (provider) => {
|
|
76
|
-
var _manifest2;
|
|
77
74
|
const { render, destroy, SubModuleComponent: SubModuleComponent2, jupiter_submodule_app_key } = provider;
|
|
78
|
-
const componetRenderMode = (
|
|
75
|
+
const componetRenderMode = (manifest === null || manifest === void 0 ? void 0 : manifest.componentRender) && (SubModuleComponent2 || jupiter_submodule_app_key);
|
|
79
76
|
return {
|
|
80
77
|
mount: (...props2) => {
|
|
81
78
|
if (componetRenderMode) {
|
|
82
79
|
setSubModuleComponent(SubModuleComponent2);
|
|
83
80
|
return void 0;
|
|
84
81
|
} else {
|
|
85
|
-
var _render;
|
|
86
82
|
logger("MicroApp customer render", props2);
|
|
87
|
-
return
|
|
83
|
+
return render === null || render === void 0 ? void 0 : render.apply(provider, props2);
|
|
88
84
|
}
|
|
89
85
|
},
|
|
90
86
|
unmount(...props2) {
|
|
91
|
-
var _destroy;
|
|
92
87
|
if (componetRenderMode) {
|
|
93
88
|
return void 0;
|
|
94
89
|
}
|
|
95
90
|
logger("MicroApp customer destroy", props2);
|
|
96
|
-
return
|
|
91
|
+
return destroy === null || destroy === void 0 ? void 0 : destroy.apply(provider, props2);
|
|
97
92
|
}
|
|
98
93
|
};
|
|
99
94
|
}
|
|
@@ -116,19 +111,17 @@ function getAppInstance(options, appInfo, manifest) {
|
|
|
116
111
|
isLoading: false
|
|
117
112
|
});
|
|
118
113
|
if (appInstance.mounted && appInstance.appInfo.cache) {
|
|
119
|
-
var _appInstance;
|
|
120
114
|
logger(`MicroApp Garfish.loadApp "${appInfo.name}" show`, {
|
|
121
115
|
appInfo: appInstance.appInfo,
|
|
122
116
|
appInstance
|
|
123
117
|
});
|
|
124
|
-
await (
|
|
118
|
+
await (appInstance === null || appInstance === void 0 ? void 0 : appInstance.show());
|
|
125
119
|
} else {
|
|
126
|
-
var _appInstance1;
|
|
127
120
|
logger(`MicroApp Garfish.loadApp "${appInfo.name}" mount`, {
|
|
128
121
|
appInfo: appInstance.appInfo,
|
|
129
122
|
appInstance
|
|
130
123
|
});
|
|
131
|
-
await (
|
|
124
|
+
await (appInstance === null || appInstance === void 0 ? void 0 : appInstance.mount());
|
|
132
125
|
}
|
|
133
126
|
} catch (error) {
|
|
134
127
|
setLoadingState({
|
|
@@ -160,9 +153,9 @@ function getAppInstance(options, appInfo, manifest) {
|
|
|
160
153
|
})
|
|
161
154
|
});
|
|
162
155
|
}
|
|
163
|
-
return Loadable(MicroApp)(
|
|
156
|
+
return Loadable(MicroApp)(manifest === null || manifest === void 0 ? void 0 : manifest.loadable);
|
|
164
157
|
}
|
|
165
|
-
|
|
158
|
+
function generateApps(options, manifest) {
|
|
166
159
|
var _options_apps;
|
|
167
160
|
const apps = {};
|
|
168
161
|
(_options_apps = options.apps) === null || _options_apps === void 0 ? void 0 : _options_apps.forEach((appInfo) => {
|
|
@@ -175,3 +168,7 @@ export function generateApps(options, manifest) {
|
|
|
175
168
|
appInfoList: options.apps || []
|
|
176
169
|
};
|
|
177
170
|
}
|
|
171
|
+
export {
|
|
172
|
+
generateApps,
|
|
173
|
+
pathJoin
|
|
174
|
+
};
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
import ReactDOM from "react-dom";
|
|
3
3
|
import garfish from "garfish";
|
|
4
4
|
import { logger } from "../../util";
|
|
5
|
-
|
|
5
|
+
var setExternal_default = () => {
|
|
6
6
|
logger("setExternal ", {
|
|
7
7
|
react: React,
|
|
8
8
|
"react-dom": ReactDOM
|
|
@@ -10,3 +10,6 @@ export default () => {
|
|
|
10
10
|
garfish.setExternal("react", React);
|
|
11
11
|
garfish.setExternal("react-dom", ReactDOM);
|
|
12
12
|
};
|
|
13
|
+
export {
|
|
14
|
+
setExternal_default as default
|
|
15
|
+
};
|
package/dist/esm-node/util.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import createDebug from "debug";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return moduleInfo ? `modern_sub_app_container_${decodeURIComponent((_moduleInfo = moduleInfo) === null || _moduleInfo === void 0 ? void 0 : _moduleInfo.name)}` : "modern_sub_app_container";
|
|
2
|
+
const logger = createDebug("modern-js:plugin-garfish");
|
|
3
|
+
const SUBMODULE_APP_COMPONENT_KEY = "SubModuleComponent";
|
|
4
|
+
function generateSubAppContainerKey(moduleInfo) {
|
|
5
|
+
return moduleInfo ? `modern_sub_app_container_${decodeURIComponent(moduleInfo === null || moduleInfo === void 0 ? void 0 : moduleInfo.name)}` : "modern_sub_app_container";
|
|
7
6
|
}
|
|
7
|
+
export {
|
|
8
|
+
SUBMODULE_APP_COMPONENT_KEY,
|
|
9
|
+
generateSubAppContainerKey,
|
|
10
|
+
logger
|
|
11
|
+
};
|