@modern-js/plugin-garfish 2.11.0 → 2.13.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/CHANGELOG.md +24 -0
- package/dist/cjs/cli/index.js +1 -5
- package/dist/cjs/cli/utils.js +11 -29
- package/dist/esm/cli/index.js +1 -2
- package/dist/esm/cli/utils.js +4 -10
- package/dist/esm-node/cli/index.js +1 -5
- package/dist/esm-node/cli/utils.js +11 -29
- package/dist/types/cli/utils.d.ts +1 -1
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @modern-js/plugin-garfish
|
|
2
2
|
|
|
3
|
+
## 2.13.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4220c0e: feat: support global props in createApp and pass garfish props in
|
|
8
|
+
feat: createApp 支持全局属性,garfish 通过这个方式透传 garfish props
|
|
9
|
+
- Updated dependencies [cad9676]
|
|
10
|
+
- Updated dependencies [e9b1656]
|
|
11
|
+
- Updated dependencies [4d413c4]
|
|
12
|
+
- Updated dependencies [4220c0e]
|
|
13
|
+
- @modern-js/runtime@2.13.0
|
|
14
|
+
- @modern-js/utils@2.13.0
|
|
15
|
+
|
|
16
|
+
## 2.12.0
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Updated dependencies [c2ca6c8]
|
|
21
|
+
- Updated dependencies [0b05ec3]
|
|
22
|
+
- Updated dependencies [6d86e34]
|
|
23
|
+
- Updated dependencies [1aa0cb7]
|
|
24
|
+
- @modern-js/utils@2.12.0
|
|
25
|
+
- @modern-js/runtime@2.12.0
|
|
26
|
+
|
|
3
27
|
## 2.11.0
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/dist/cjs/cli/index.js
CHANGED
|
@@ -234,11 +234,7 @@ var cli_default = ({
|
|
|
234
234
|
if (!((_a = config == null ? void 0 : config.deploy) == null ? void 0 : _a.microFrontend)) {
|
|
235
235
|
return { entrypoint, code };
|
|
236
236
|
}
|
|
237
|
-
const
|
|
238
|
-
const nCode = (0, import_utils2.makeRenderFunction)(
|
|
239
|
-
code,
|
|
240
|
-
Boolean(nestedRoutesEntry || pageRoutesEntry)
|
|
241
|
-
);
|
|
237
|
+
const nCode = (0, import_utils2.makeRenderFunction)(code);
|
|
242
238
|
(0, import_util.logger)("makeRenderFunction", nCode);
|
|
243
239
|
return {
|
|
244
240
|
entrypoint,
|
package/dist/cjs/cli/utils.js
CHANGED
|
@@ -93,42 +93,24 @@ function generateRouterPlugin (basename,routerConfig) {
|
|
|
93
93
|
return router(routerConfig);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
function
|
|
97
|
-
let AppWrapper = App;
|
|
98
|
-
if (garfishProps) {
|
|
99
|
-
AppWrapper = function (props) {
|
|
100
|
-
return React.createElement(App, { ...garfishProps, ...props });
|
|
101
|
-
};
|
|
102
|
-
AppWrapper = hoistNonReactStatics(AppWrapper, App);
|
|
103
|
-
}
|
|
96
|
+
function generateRootDom ({ dom }) {
|
|
104
97
|
const mountNode = dom ? (dom.querySelector('#' + MOUNT_ID) || dom) : document.getElementById(MOUNT_ID);
|
|
105
|
-
return {
|
|
98
|
+
return { mountNode }
|
|
106
99
|
}
|
|
107
100
|
`;
|
|
108
|
-
const makeRenderFunction = (code
|
|
101
|
+
const makeRenderFunction = (code) => {
|
|
109
102
|
const inGarfishToRender = `
|
|
110
103
|
const { basename, props, dom, appName } = typeof arguments[0] === 'object' && arguments[0] || {};
|
|
111
104
|
if (!canContinueRender({ dom, appName })) return null;
|
|
105
|
+
let { mountNode } = generateRootDom({dom});
|
|
112
106
|
`;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
"customBootstrap(AppWrapper, mountNode"
|
|
121
|
-
);
|
|
122
|
-
return codeString;
|
|
123
|
-
} else {
|
|
124
|
-
return inGarfishToRender + appWrapperCode + code.replace(`router(`, `generateRouterPlugin(basename,`).replace("(App)", `(AppWrapper)`).replace(/MOUNT_ID/g, "mountNode").replace(
|
|
125
|
-
`bootstrap(AppWrapper, mountNode, root`,
|
|
126
|
-
"bootstrap(AppWrapper, mountNode, root = IS_REACT18 ? ReactDOM.createRoot(mountNode) : null"
|
|
127
|
-
).replace(
|
|
128
|
-
`customBootstrap(AppWrapper`,
|
|
129
|
-
"customBootstrap(AppWrapper, mountNode"
|
|
130
|
-
);
|
|
131
|
-
}
|
|
107
|
+
return inGarfishToRender + code.replace(`router(`, `generateRouterPlugin(basename,`).replace(/MOUNT_ID/g, "mountNode").replace(`createApp({`, "createApp({ props,").replace(
|
|
108
|
+
`bootstrap(AppWrapper, mountNode, root`,
|
|
109
|
+
"bootstrap(AppWrapper, mountNode, root = IS_REACT18 ? ReactDOM.createRoot(mountNode) : null"
|
|
110
|
+
).replace(
|
|
111
|
+
`customBootstrap(AppWrapper`,
|
|
112
|
+
"customBootstrap(AppWrapper, mountNode"
|
|
113
|
+
);
|
|
132
114
|
};
|
|
133
115
|
function getRuntimeConfig(config) {
|
|
134
116
|
var _a, _b;
|
package/dist/esm/cli/index.js
CHANGED
|
@@ -374,8 +374,7 @@ var cli_default = function() {
|
|
|
374
374
|
code: code
|
|
375
375
|
};
|
|
376
376
|
}
|
|
377
|
-
var
|
|
378
|
-
var nCode = makeRenderFunction(code, Boolean(nestedRoutesEntry || pageRoutesEntry));
|
|
377
|
+
var nCode = makeRenderFunction(code);
|
|
379
378
|
logger("makeRenderFunction", nCode);
|
|
380
379
|
return {
|
|
381
380
|
entrypoint: entrypoint,
|
package/dist/esm/cli/utils.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
var makeProvider = function() {
|
|
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
|
|
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 generateRootDom ({ dom }) {\n const mountNode = dom ? (dom.querySelector('#' + MOUNT_ID) || dom) : document.getElementById(MOUNT_ID);\n return { mountNode }\n}\n";
|
|
3
3
|
};
|
|
4
|
-
var makeRenderFunction = function(code
|
|
5
|
-
var inGarfishToRender = "\n const { basename, props, dom, appName } = typeof arguments[0] === 'object' && arguments[0] || {};\n if (!canContinueRender({ dom, appName })) return null;\n ";
|
|
6
|
-
|
|
7
|
-
if (isNested) {
|
|
8
|
-
var codeString = inGarfishToRender + code.replace("router(", "generateRouterPlugin(basename,").replace("(App)", "(AppWrapper)").replace(/MOUNT_ID/g, "mountNode").replace("if(!AppWrapper.init", "".concat(appWrapperCode, "if(!AppWrapper.init")).replace("bootstrap(AppWrapper, mountNode, root", "bootstrap(AppWrapper, mountNode, root = IS_REACT18 ? ReactDOM.createRoot(mountNode) : null").replace("customBootstrap(AppWrapper", "customBootstrap(AppWrapper, mountNode");
|
|
9
|
-
return codeString;
|
|
10
|
-
} else {
|
|
11
|
-
return inGarfishToRender + appWrapperCode + 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").replace("customBootstrap(AppWrapper", "customBootstrap(AppWrapper, mountNode");
|
|
12
|
-
}
|
|
4
|
+
var makeRenderFunction = function(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 { mountNode } = generateRootDom({dom});\n ";
|
|
6
|
+
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");
|
|
13
7
|
};
|
|
14
8
|
function getRuntimeConfig(config) {
|
|
15
9
|
var _config_runtime;
|
|
@@ -216,11 +216,7 @@ var cli_default = ({
|
|
|
216
216
|
if (!((_a = config == null ? void 0 : config.deploy) == null ? void 0 : _a.microFrontend)) {
|
|
217
217
|
return { entrypoint, code };
|
|
218
218
|
}
|
|
219
|
-
const
|
|
220
|
-
const nCode = makeRenderFunction(
|
|
221
|
-
code,
|
|
222
|
-
Boolean(nestedRoutesEntry || pageRoutesEntry)
|
|
223
|
-
);
|
|
219
|
+
const nCode = makeRenderFunction(code);
|
|
224
220
|
logger("makeRenderFunction", nCode);
|
|
225
221
|
return {
|
|
226
222
|
entrypoint,
|
|
@@ -67,42 +67,24 @@ function generateRouterPlugin (basename,routerConfig) {
|
|
|
67
67
|
return router(routerConfig);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
function
|
|
71
|
-
let AppWrapper = App;
|
|
72
|
-
if (garfishProps) {
|
|
73
|
-
AppWrapper = function (props) {
|
|
74
|
-
return React.createElement(App, { ...garfishProps, ...props });
|
|
75
|
-
};
|
|
76
|
-
AppWrapper = hoistNonReactStatics(AppWrapper, App);
|
|
77
|
-
}
|
|
70
|
+
function generateRootDom ({ dom }) {
|
|
78
71
|
const mountNode = dom ? (dom.querySelector('#' + MOUNT_ID) || dom) : document.getElementById(MOUNT_ID);
|
|
79
|
-
return {
|
|
72
|
+
return { mountNode }
|
|
80
73
|
}
|
|
81
74
|
`;
|
|
82
|
-
const makeRenderFunction = (code
|
|
75
|
+
const makeRenderFunction = (code) => {
|
|
83
76
|
const inGarfishToRender = `
|
|
84
77
|
const { basename, props, dom, appName } = typeof arguments[0] === 'object' && arguments[0] || {};
|
|
85
78
|
if (!canContinueRender({ dom, appName })) return null;
|
|
79
|
+
let { mountNode } = generateRootDom({dom});
|
|
86
80
|
`;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"customBootstrap(AppWrapper, mountNode"
|
|
95
|
-
);
|
|
96
|
-
return codeString;
|
|
97
|
-
} else {
|
|
98
|
-
return inGarfishToRender + appWrapperCode + code.replace(`router(`, `generateRouterPlugin(basename,`).replace("(App)", `(AppWrapper)`).replace(/MOUNT_ID/g, "mountNode").replace(
|
|
99
|
-
`bootstrap(AppWrapper, mountNode, root`,
|
|
100
|
-
"bootstrap(AppWrapper, mountNode, root = IS_REACT18 ? ReactDOM.createRoot(mountNode) : null"
|
|
101
|
-
).replace(
|
|
102
|
-
`customBootstrap(AppWrapper`,
|
|
103
|
-
"customBootstrap(AppWrapper, mountNode"
|
|
104
|
-
);
|
|
105
|
-
}
|
|
81
|
+
return inGarfishToRender + code.replace(`router(`, `generateRouterPlugin(basename,`).replace(/MOUNT_ID/g, "mountNode").replace(`createApp({`, "createApp({ props,").replace(
|
|
82
|
+
`bootstrap(AppWrapper, mountNode, root`,
|
|
83
|
+
"bootstrap(AppWrapper, mountNode, root = IS_REACT18 ? ReactDOM.createRoot(mountNode) : null"
|
|
84
|
+
).replace(
|
|
85
|
+
`customBootstrap(AppWrapper`,
|
|
86
|
+
"customBootstrap(AppWrapper, mountNode"
|
|
87
|
+
);
|
|
106
88
|
};
|
|
107
89
|
function getRuntimeConfig(config) {
|
|
108
90
|
var _a, _b;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AppNormalizedConfig } from '@modern-js/app-tools';
|
|
2
2
|
export declare const makeProvider: () => string;
|
|
3
|
-
export declare const makeRenderFunction: (code: string
|
|
3
|
+
export declare const makeRenderFunction: (code: string) => string;
|
|
4
4
|
export declare function getRuntimeConfig(config: Partial<AppNormalizedConfig>): any;
|
|
5
5
|
export declare function setRuntimeConfig(config: Partial<AppNormalizedConfig>, key: string, value: any): undefined;
|
|
6
6
|
export declare const generateAsyncEntry: (code: string) => string;
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.13.0",
|
|
15
15
|
"jsnext:source": "./src/cli/index.ts",
|
|
16
16
|
"types": "./dist/types/cli/index.d.ts",
|
|
17
17
|
"typesVersions": {
|
|
@@ -66,10 +66,10 @@
|
|
|
66
66
|
"garfish": "^1.8.1",
|
|
67
67
|
"hoist-non-react-statics": "^3.3.2",
|
|
68
68
|
"react-loadable": "^5.5.0",
|
|
69
|
-
"@modern-js/utils": "2.
|
|
69
|
+
"@modern-js/utils": "2.13.0"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
|
-
"@modern-js/runtime": "^2.
|
|
72
|
+
"@modern-js/runtime": "^2.13.0"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
75
|
"@testing-library/jest-dom": "^5.16.1",
|
|
@@ -86,13 +86,13 @@
|
|
|
86
86
|
"react-router-dom": "^6.8.1",
|
|
87
87
|
"typescript": "^4",
|
|
88
88
|
"webpack-chain": "^6.5.1",
|
|
89
|
-
"@modern-js/app-tools": "2.
|
|
90
|
-
"@modern-js/core": "2.
|
|
91
|
-
"@modern-js/plugin-router-v5": "2.
|
|
92
|
-
"@modern-js/runtime": "2.
|
|
93
|
-
"@modern-js/types": "2.
|
|
94
|
-
"@scripts/build": "2.
|
|
95
|
-
"@scripts/jest-config": "2.
|
|
89
|
+
"@modern-js/app-tools": "2.13.0",
|
|
90
|
+
"@modern-js/core": "2.13.0",
|
|
91
|
+
"@modern-js/plugin-router-v5": "2.13.0",
|
|
92
|
+
"@modern-js/runtime": "2.13.0",
|
|
93
|
+
"@modern-js/types": "2.13.0",
|
|
94
|
+
"@scripts/build": "2.13.0",
|
|
95
|
+
"@scripts/jest-config": "2.13.0"
|
|
96
96
|
},
|
|
97
97
|
"sideEffects": false,
|
|
98
98
|
"modernConfig": {},
|