@module-federation/bridge-vue3 0.8.4 → 0.8.6

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/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "https://github.com/module-federation/core",
8
8
  "directory": "packages/vue3-bridge"
9
9
  },
10
- "version": "0.8.4",
10
+ "version": "0.8.6",
11
11
  "publishConfig": {
12
12
  "access": "public"
13
13
  },
@@ -32,9 +32,9 @@
32
32
  "vue-router": "=3"
33
33
  },
34
34
  "dependencies": {
35
- "@module-federation/bridge-shared": "0.8.4",
36
- "@module-federation/sdk": "0.8.4",
37
- "@module-federation/runtime": "0.8.4"
35
+ "@module-federation/bridge-shared": "0.8.6",
36
+ "@module-federation/sdk": "0.8.6",
37
+ "@module-federation/runtime": "0.8.6"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@vitejs/plugin-vue": "^5.0.4",
package/src/create.ts CHANGED
@@ -28,7 +28,7 @@ export function createRemoteComponent(info: {
28
28
  }
29
29
 
30
30
  const exportName = info?.export || 'default';
31
- LoggerInstance.log(`createRemoteComponent LazyComponent create >>>`, {
31
+ LoggerInstance.debug(`createRemoteComponent LazyComponent create >>>`, {
32
32
  basename,
33
33
  info,
34
34
  });
@@ -37,7 +37,7 @@ export function createRemoteComponent(info: {
37
37
  const moduleName = module && module[Symbol.for('mf_module_id')];
38
38
  const exportFn = module[exportName];
39
39
 
40
- LoggerInstance.log(
40
+ LoggerInstance.debug(
41
41
  `createRemoteComponent LazyComponent loadRemote info >>>`,
42
42
  { name: moduleName, module, exportName, basename, route },
43
43
  );
package/src/provider.ts CHANGED
@@ -6,19 +6,33 @@ import { getInstance } from '@module-federation/runtime';
6
6
 
7
7
  declare const __APP_VERSION__: string;
8
8
 
9
- export function createBridgeComponent(bridgeInfo: any) {
9
+ type AddOptionsFnParams = {
10
+ app: Vue.App<Vue.Component>;
11
+ basename: RenderFnParams['basename'];
12
+ memoryRoute: RenderFnParams['memoryRoute'];
13
+ [key: string]: any;
14
+ };
15
+
16
+ export type ProviderFnParams = {
17
+ rootComponent: Vue.Component;
18
+ appOptions: (
19
+ params: AddOptionsFnParams,
20
+ ) => { router?: VueRouter.Router } | void;
21
+ };
22
+
23
+ export function createBridgeComponent(bridgeInfo: ProviderFnParams) {
10
24
  const rootMap = new Map();
11
25
  const instance = getInstance();
12
26
  return () => {
13
27
  return {
14
28
  __APP_VERSION__,
15
- render(info: RenderFnParams) {
16
- LoggerInstance.log(`createBridgeComponent render Info`, info);
29
+ async render(info: RenderFnParams) {
30
+ LoggerInstance.debug(`createBridgeComponent render Info`, info);
17
31
  const app = Vue.createApp(bridgeInfo.rootComponent);
18
32
  rootMap.set(info.dom, app);
19
33
 
20
34
  const beforeBridgeRenderRes =
21
- instance?.bridgeHook?.lifecycle?.beforeBridgeRender?.emit(info) || {};
35
+ await instance?.bridgeHook?.lifecycle?.beforeBridgeRender?.emit(info);
22
36
 
23
37
  const extraProps =
24
38
  beforeBridgeRenderRes &&
@@ -27,41 +41,41 @@ export function createBridgeComponent(bridgeInfo: any) {
27
41
  ? beforeBridgeRenderRes?.extraProps
28
42
  : {};
29
43
 
30
- const appOptions = bridgeInfo.appOptions({
44
+ const bridgeOptions = bridgeInfo.appOptions({
45
+ app,
31
46
  basename: info.basename,
32
47
  memoryRoute: info.memoryRoute,
33
48
  ...extraProps,
34
49
  });
35
50
 
36
- const history = info.memoryRoute
37
- ? VueRouter.createMemoryHistory(info.basename)
38
- : VueRouter.createWebHistory(info.basename);
51
+ if (bridgeOptions?.router) {
52
+ const history = info.memoryRoute
53
+ ? VueRouter.createMemoryHistory(info.basename)
54
+ : VueRouter.createWebHistory(info.basename);
39
55
 
40
- const router = VueRouter.createRouter({
41
- ...appOptions.router.options,
42
- history,
43
- routes: appOptions.router.getRoutes(),
44
- });
56
+ const router = VueRouter.createRouter({
57
+ ...bridgeOptions.router.options,
58
+ history,
59
+ routes: bridgeOptions.router.getRoutes(),
60
+ });
45
61
 
46
- LoggerInstance.log(`createBridgeComponent render router info>>>`, {
47
- name: info.moduleName,
48
- router,
49
- });
50
- // memory route Initializes the route
51
- if (info.memoryRoute) {
52
- router.push(info.memoryRoute.entryPath).then(() => {
53
- app.use(router);
54
- app.mount(info.dom);
62
+ LoggerInstance.log(`createBridgeComponent render router info>>>`, {
63
+ name: info.moduleName,
64
+ router,
55
65
  });
56
- } else {
66
+ // memory route Initializes the route
67
+ if (info.memoryRoute) {
68
+ await router.push(info.memoryRoute.entryPath);
69
+ }
70
+
57
71
  app.use(router);
58
- app.mount(info.dom);
59
72
  }
60
73
 
61
- instance?.bridgeHook?.lifecycle?.afterBridgeRender?.emit(info) || {};
74
+ app.mount(info.dom);
75
+ instance?.bridgeHook?.lifecycle?.afterBridgeRender?.emit(info);
62
76
  },
63
77
  destroy(info: { dom: HTMLElement }) {
64
- LoggerInstance.log(`createBridgeComponent destroy Info`, info);
78
+ LoggerInstance.debug(`createBridgeComponent destroy Info`, info);
65
79
  const root = rootMap.get(info?.dom);
66
80
 
67
81
  instance?.bridgeHook?.lifecycle?.beforeBridgeDestroy?.emit(info);
package/src/remoteApp.tsx CHANGED
@@ -29,7 +29,7 @@ export default defineComponent({
29
29
  basename: props.basename,
30
30
  memoryRoute: props.memoryRoute,
31
31
  };
32
- LoggerInstance.log(
32
+ LoggerInstance.debug(
33
33
  `createRemoteComponent LazyComponent render >>>`,
34
34
  renderProps,
35
35
  );
@@ -53,10 +53,13 @@ export default defineComponent({
53
53
 
54
54
  // dispatchPopstateEnv
55
55
  if (pathname.value !== '' && pathname.value !== newPath) {
56
- LoggerInstance.log(`createRemoteComponent dispatchPopstateEnv >>>`, {
57
- ...props,
58
- pathname: route.path,
59
- });
56
+ LoggerInstance.debug(
57
+ `createRemoteComponent dispatchPopstateEnv >>>`,
58
+ {
59
+ ...props,
60
+ pathname: route.path,
61
+ },
62
+ );
60
63
  dispatchPopstateEnv();
61
64
  }
62
65
  pathname.value = newPath;
@@ -68,7 +71,7 @@ export default defineComponent({
68
71
  });
69
72
 
70
73
  onBeforeUnmount(() => {
71
- LoggerInstance.log(`createRemoteComponent LazyComponent destroy >>>`, {
74
+ LoggerInstance.debug(`createRemoteComponent LazyComponent destroy >>>`, {
72
75
  ...props,
73
76
  });
74
77
  watchStopHandle();