@modern-js/plugin-garfish 1.22.6 → 1.22.7
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @modern-js/plugin-garfish
|
|
2
2
|
|
|
3
|
+
## 1.22.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 7e959f9: fix(garfish): pass basename as props to root component
|
|
8
|
+
传递 basename 给子应用根组件
|
|
9
|
+
- efae5b5: fix: avoid do not get provider when in micro-frontend mode
|
|
10
|
+
避免微前端模式下 provider 获取不到
|
|
11
|
+
- @modern-js/runtime@1.22.7
|
|
12
|
+
- @modern-js/utils@1.22.7
|
|
13
|
+
|
|
3
14
|
## 1.22.6
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
|
@@ -83,7 +83,7 @@ export const makeRenderFunction = code => {
|
|
|
83
83
|
const inGarfishToRender = `
|
|
84
84
|
const { basename, props, dom, appName } = typeof arguments[0] === 'object' && arguments[0] || {};
|
|
85
85
|
if (!canContinueRender({ dom, appName })) return null;
|
|
86
|
-
let { AppWrapper, mountNode } = generateAppWrapperAndRootDom({App, props, dom});
|
|
86
|
+
let { AppWrapper, mountNode } = generateAppWrapperAndRootDom({App, props: {...props, basename}, dom});
|
|
87
87
|
`;
|
|
88
88
|
return inGarfishToRender + code.replace(`router(`, `generateRouterPlugin(basename,`).replace('(App)', `(AppWrapper)`).replace(/MOUNT_ID/g, 'mountNode').replace(`bootstrap(AppWrapper, mountNode, root`, 'bootstrap(AppWrapper, mountNode, root = IS_REACT18 ? ReactDOM.createRoot(mountNode) : null');
|
|
89
89
|
}; // support legacy config
|
|
@@ -123,5 +123,8 @@ export const generateAsyncEntry = code => {
|
|
|
123
123
|
return exports.provider.apply(null, args);
|
|
124
124
|
};
|
|
125
125
|
${transformCode}
|
|
126
|
+
if (typeof __GARFISH_EXPORTS__ !== 'undefined') {
|
|
127
|
+
__GARFISH_EXPORTS__.provider = provider;
|
|
128
|
+
}
|
|
126
129
|
`;
|
|
127
130
|
};
|
|
@@ -96,7 +96,7 @@ const makeRenderFunction = code => {
|
|
|
96
96
|
const inGarfishToRender = `
|
|
97
97
|
const { basename, props, dom, appName } = typeof arguments[0] === 'object' && arguments[0] || {};
|
|
98
98
|
if (!canContinueRender({ dom, appName })) return null;
|
|
99
|
-
let { AppWrapper, mountNode } = generateAppWrapperAndRootDom({App, props, dom});
|
|
99
|
+
let { AppWrapper, mountNode } = generateAppWrapperAndRootDom({App, props: {...props, basename}, dom});
|
|
100
100
|
`;
|
|
101
101
|
return inGarfishToRender + code.replace(`router(`, `generateRouterPlugin(basename,`).replace('(App)', `(AppWrapper)`).replace(/MOUNT_ID/g, 'mountNode').replace(`bootstrap(AppWrapper, mountNode, root`, 'bootstrap(AppWrapper, mountNode, root = IS_REACT18 ? ReactDOM.createRoot(mountNode) : null');
|
|
102
102
|
}; // support legacy config
|
|
@@ -141,6 +141,9 @@ const generateAsyncEntry = code => {
|
|
|
141
141
|
return exports.provider.apply(null, args);
|
|
142
142
|
};
|
|
143
143
|
${transformCode}
|
|
144
|
+
if (typeof __GARFISH_EXPORTS__ !== 'undefined') {
|
|
145
|
+
__GARFISH_EXPORTS__.provider = provider;
|
|
146
|
+
}
|
|
144
147
|
`;
|
|
145
148
|
};
|
|
146
149
|
|
|
@@ -2,7 +2,7 @@ export var makeProvider = function makeProvider() {
|
|
|
2
2
|
return "\nexport const provider = function ({basename, dom}) {\n return {\n render({basename, dom, props, appName}) {\n render({ props, basename, dom, appName });\n },\n destroy({ dom }) {\n const node = dom.querySelector('#' + MOUNT_ID) || dom;\n\n if (node) {\n if (IS_REACT18) {\n root.unmount();\n } else {\n unmountComponentAtNode(node);\n }\n }\n },\n SubModuleComponent: (props) => {\n const SubApp = render({props, basename});\n\n return createPortal(<SubApp />, dom.querySelector('#' + MOUNT_ID) || dom);\n },\n jupiter_submodule_app_key: (props) => {\n const SubApp = render({props, basename});\n\n return createPortal(<SubApp />, dom.querySelector('#' + MOUNT_ID) || dom);\n }\n }\n};\n\nif (typeof __GARFISH_EXPORTS__ !== 'undefined') {\n __GARFISH_EXPORTS__.provider = provider;\n}\n\nfunction canContinueRender ({ dom, appName }) {\n var renderByGarfish =\n typeof __GARFISH_EXPORTS__ !== 'undefined'\n || typeof window !== 'undefined' && window.Garfish && window.Garfish.activeApps && window.Garfish.activeApps.some((app)=>app.appInfo.name === appName);\n let renderByProvider = dom || appName;\n if (renderByGarfish) {\n // Runs in the Garfish environment and is rendered by the provider\n if (renderByProvider) {\n return true;\n } else {\n // Runs in the Garfish environment and is not rendered by the provider\n return false;\n }\n } else {\n // Running in a non-Garfish environment\n return true;\n }\n}\n\nfunction generateRouterPlugin (basename,routerConfig) {\n if (basename) {\n routerConfig.basename = basename;\n if (routerConfig.supportHtml5History !== false) {\n if (!routerConfig.historyOptions) {\n routerConfig.historyOptions = {\n basename: basename\n };\n } else {\n routerConfig.historyOptions.basename = basename;\n }\n }\n }\n return router(routerConfig);\n}\n\nfunction generateAppWrapperAndRootDom ({ App, props, dom }) {\n let AppWrapper = App;\n if (props) {\n AppWrapper = function () {\n return React.createElement(App, props);\n };\n AppWrapper = hoistNonReactStatics(AppWrapper, App);\n }\n const mountNode = dom ? (dom.querySelector('#' + MOUNT_ID) || dom) : document.getElementById(MOUNT_ID);\n return { AppWrapper, mountNode }\n}\n";
|
|
3
3
|
};
|
|
4
4
|
export var makeRenderFunction = function makeRenderFunction(code) {
|
|
5
|
-
var inGarfishToRender = "\n const { basename, props, dom, appName } = typeof arguments[0] === 'object' && arguments[0] || {};\n if (!canContinueRender({ dom, appName })) return null;\n let { AppWrapper, mountNode } = generateAppWrapperAndRootDom({App, props, dom});\n ";
|
|
5
|
+
var inGarfishToRender = "\n const { basename, props, dom, appName } = typeof arguments[0] === 'object' && arguments[0] || {};\n if (!canContinueRender({ dom, appName })) return null;\n let { AppWrapper, mountNode } = generateAppWrapperAndRootDom({App, props: {...props, basename}, dom});\n ";
|
|
6
6
|
return inGarfishToRender + code.replace("router(", "generateRouterPlugin(basename,").replace('(App)', "(AppWrapper)").replace(/MOUNT_ID/g, 'mountNode').replace("bootstrap(AppWrapper, mountNode, root", 'bootstrap(AppWrapper, mountNode, root = IS_REACT18 ? ReactDOM.createRoot(mountNode) : null');
|
|
7
7
|
}; // support legacy config
|
|
8
8
|
|
|
@@ -35,5 +35,5 @@ export function setRuntimeConfig(config, key, value) {
|
|
|
35
35
|
}
|
|
36
36
|
export var generateAsyncEntry = function generateAsyncEntry(code) {
|
|
37
37
|
var transformCode = code.replace("import('./bootstrap.js');", "if (!window.__GARFISH__) { import('./bootstrap.js'); }");
|
|
38
|
-
return "\n export const provider = async (...args) => {\n const exports = await import('./bootstrap');\n return exports.provider.apply(null, args);\n };\n ".concat(transformCode, "\n ");
|
|
38
|
+
return "\n export const provider = async (...args) => {\n const exports = await import('./bootstrap');\n return exports.provider.apply(null, args);\n };\n ".concat(transformCode, "\n if (typeof __GARFISH_EXPORTS__ !== 'undefined') {\n __GARFISH_EXPORTS__.provider = provider;\n }\n ");
|
|
39
39
|
};
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.22.
|
|
14
|
+
"version": "1.22.7",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/runtime/index.d.ts",
|
|
17
17
|
"typesVersions": {
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
"garfish": "^1.8.1",
|
|
57
57
|
"hoist-non-react-statics": "^3.3.2",
|
|
58
58
|
"react-loadable": "^5.5.0",
|
|
59
|
-
"@modern-js/utils": "1.22.
|
|
59
|
+
"@modern-js/utils": "1.22.7"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"@modern-js/runtime": "^1.22.
|
|
62
|
+
"@modern-js/runtime": "^1.22.7"
|
|
63
63
|
},
|
|
64
64
|
"peerDependenciesMeta": {
|
|
65
65
|
"@modern-js/runtime": {
|
|
@@ -82,11 +82,11 @@
|
|
|
82
82
|
"react-router-dom": "^6.2.1",
|
|
83
83
|
"typescript": "^4",
|
|
84
84
|
"webpack-chain": "^6.5.1",
|
|
85
|
-
"@modern-js/core": "1.22.
|
|
86
|
-
"@modern-js/runtime": "1.22.
|
|
87
|
-
"@modern-js/types": "1.22.
|
|
88
|
-
"@scripts/build": "1.22.
|
|
89
|
-
"@scripts/jest-config": "1.22.
|
|
85
|
+
"@modern-js/core": "1.22.7",
|
|
86
|
+
"@modern-js/runtime": "1.22.7",
|
|
87
|
+
"@modern-js/types": "1.22.7",
|
|
88
|
+
"@scripts/build": "1.22.7",
|
|
89
|
+
"@scripts/jest-config": "1.22.7"
|
|
90
90
|
},
|
|
91
91
|
"sideEffects": false,
|
|
92
92
|
"modernConfig": {},
|