@skyfox2000/microbase 1.0.14 → 1.2.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/.cursorignore ADDED
@@ -0,0 +1,8 @@
1
+ # Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)
2
+ target/
3
+ dist/
4
+ lib/
5
+ demo/
6
+ mock
7
+ node_modules/
8
+ .vscode/
package/lib/index.d.ts CHANGED
@@ -111,6 +111,13 @@ export declare enum AppSource {
111
111
  */
112
112
  export declare const combineParams: (...args: (ReqParams | undefined)[]) => ReqParams;
113
113
 
114
+ /**
115
+ * 统一环境变量配置
116
+ */
117
+ export declare const EnvConfig: {
118
+ [key: string]: string;
119
+ };
120
+
114
121
  /**
115
122
  * 启动配置信息
116
123
  * - 网站配置信息
@@ -168,6 +175,11 @@ export declare interface HostInfo {
168
175
  [key: string]: any;
169
176
  }
170
177
 
178
+ /**
179
+ * 初始化环境变量
180
+ */
181
+ export declare const initEnv: (metaEnv: ImportMetaEnv) => void;
182
+
171
183
  /**
172
184
  * 从页面加载处获取接口
173
185
  */
@@ -259,10 +271,6 @@ export declare interface MainOpenApis {
259
271
  * 获取当前应用AppInfo
260
272
  */
261
273
  getAppInfo: () => AppInfo;
262
- /**
263
- * 主机解析图标库并同步到子应用
264
- */
265
- createIconLib: (iconLib: Ref<Record<string, any>>) => void;
266
274
  /**
267
275
  * 用户注册接口
268
276
  */
@@ -1,47 +1,50 @@
1
1
  import { deepClone as l } from "@skyfox2000/fapi";
2
2
  import { ref as o, markRaw as p, h as a } from "vue";
3
- import { createRouter as m, createWebHashHistory as d } from "vue-router";
3
+ import { createRouter as d, createWebHashHistory as m } from "vue-router";
4
4
  var v = /* @__PURE__ */ ((e) => (e.Market = "Market", e.Manual = "Manual", e))(v || {}), y = /* @__PURE__ */ ((e) => (e.App = "App", e.MenuApp = "MenuApp", e.Link = "Link", e.Iframe = "Iframe", e))(y || {});
5
- const r = (e, n) => {
6
- if (!(!n || !e))
7
- for (const t in n)
8
- t in e && typeof e[t] == "object" && typeof n[t] == "object" && !Array.isArray(n[t]) ? r(e[t], n[t]) : e[t] = l(n[t]);
9
- }, P = (...e) => {
10
- const n = {};
11
- for (const t of e)
12
- t != null && t.Option && !n.Option && (n.Option = {}), r(n.Option, t == null ? void 0 : t.Option);
13
- for (const t of e)
14
- t != null && t.Query && !n.Query && (n.Query = {}), r(n.Query, t == null ? void 0 : t.Query);
15
- for (const t of e)
16
- n.Data = t != null && t.Data ? l(t.Data) : {};
17
- return n;
18
- }, I = () => !!window.__MICRO_APP_ENVIRONMENT__, k = () => !!window.__MICRO_APP_BASE_APPLICATION__, i = o(), A = o(), M = o(), R = () => {
5
+ const r = (e, t) => {
6
+ if (!(!t || !e))
7
+ for (const n in t)
8
+ n in e && typeof e[n] == "object" && typeof t[n] == "object" && !Array.isArray(t[n]) ? r(e[n], t[n]) : e[n] = l(t[n]);
9
+ }, k = (...e) => {
10
+ const t = {};
11
+ for (const n of e)
12
+ n != null && n.Option && !t.Option && (t.Option = {}), r(t.Option, n == null ? void 0 : n.Option);
13
+ for (const n of e)
14
+ n != null && n.Query && !t.Query && (t.Query = {}), r(t.Query, n == null ? void 0 : n.Query);
15
+ for (const n of e)
16
+ t.Data = n != null && n.Data ? l(n.Data) : {};
17
+ return t;
18
+ }, I = () => !!window.__MICRO_APP_ENVIRONMENT__, C = () => !!window.__MICRO_APP_BASE_APPLICATION__, i = o(), A = o(), M = o(), E = () => {
19
19
  const e = window.microApp.getData(
20
20
  !0
21
21
  );
22
22
  e && (i.value = e.MainApis, A.value = e.MainEvents, M.value = e.pageUrl);
23
- }, w = [
23
+ }, w = {}, R = (e) => {
24
+ for (const t in e)
25
+ w[t] = e[t];
26
+ }, _ = [
24
27
  {
25
28
  path: "/:page(.*)",
26
29
  name: "默认页面",
27
30
  component: () => import("./assets/modules/index-DQ8DfP_z.js")
28
31
  }
29
- ], u = m({
30
- history: d(void 0),
31
- routes: w
32
+ ], u = d({
33
+ history: m(void 0),
34
+ routes: _
32
35
  });
33
36
  u.afterEach((e) => {
34
37
  if (i.value) {
35
- const { mainAppPush: n } = i.value;
36
- n && n(e.hash);
38
+ const { mainAppPush: t } = i.value;
39
+ t && t(e.hash);
37
40
  }
38
41
  });
39
- const C = o({}), c = o(""), f = o({}), s = o(null), _ = async (e) => {
42
+ const L = o({}), c = o(""), f = o({}), s = o(null), h = async (e) => {
40
43
  c.value = e, e.startsWith("/") && (e = e.substring(1));
41
- const n = f.value[`./views/${e}.vue`];
42
- if (n) {
43
- const t = await n();
44
- s.value = p(t.default), u.replace("/" + e);
44
+ const t = f.value[`./views/${e}.vue`];
45
+ if (t) {
46
+ const n = await t();
47
+ s.value = p(n.default), u.replace("/" + e);
45
48
  } else
46
49
  console.error("加载微模块" + e + "失败"), s.value = a(
47
50
  "div",
@@ -58,27 +61,29 @@ const C = o({}), c = o(""), f = o({}), s = o(null), _ = async (e) => {
58
61
  },
59
62
  [a("div", "404 NOT FOUND")]
60
63
  );
61
- }, E = (e) => {
62
- f.value = e, window.microApp && window.microApp.addDataListener(async (n) => {
63
- if (n.pageUrl === c.value) return;
64
- let t = n.pageUrl;
65
- t ? _(t) : console.error("微模块地址为空");
64
+ }, N = (e) => {
65
+ f.value = e, window.microApp && window.microApp.addDataListener(async (t) => {
66
+ if (t.pageUrl === c.value) return;
67
+ let n = t.pageUrl;
68
+ n ? h(n) : console.error("微模块地址为空");
66
69
  }, !0);
67
70
  };
68
71
  export {
69
72
  y as AppAction,
70
73
  v as AppSource,
74
+ w as EnvConfig,
71
75
  u as LoaderRouter,
72
- P as combineParams,
73
- R as initMainAppData,
74
- E as initModuleLoader,
75
- k as isBaseMicroApp,
76
+ k as combineParams,
77
+ R as initEnv,
78
+ E as initMainAppData,
79
+ N as initModuleLoader,
80
+ C as isBaseMicroApp,
76
81
  I as isMicroApp,
77
- _ as loadModule,
82
+ h as loadModule,
78
83
  i as mainAppApis,
79
84
  A as mainAppEvents,
80
85
  M as mainPageUrl,
81
- C as moduleAttrs,
86
+ L as moduleAttrs,
82
87
  s as moduleCom,
83
88
  f as moduleRecords,
84
89
  c as moduleUrl
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyfox2000/microbase",
3
- "version": "1.0.14",
3
+ "version": "1.2.0",
4
4
  "description": "微前端通用功能与数据类型定义",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -22,8 +22,9 @@
22
22
  "build": "vue-tsc -b && vite build",
23
23
  "preview": "vite preview"
24
24
  },
25
- "dependencies": {
26
- "@micro-zoe/micro-app": "1.0.0-rc.18",
25
+ "peerDependencies": {
26
+ "@skyfox2000/fapi": "^1.1.19",
27
+ "@micro-zoe/micro-app": "^1.0.0-rc.18",
27
28
  "vue": "^3.5.13",
28
29
  "vue-router": "^4.5.0"
29
30
  },
package/src/index.ts CHANGED
@@ -6,14 +6,17 @@ import type { LoginInfo, UserInfo } from "@/stores/userInfo.d";
6
6
 
7
7
  import { combineParams } from "@/utils/data";
8
8
 
9
- import {
10
- isMicroApp,
11
- isBaseMicroApp,
12
- mainAppApis,
13
- mainAppEvents,
14
- mainPageUrl,
15
- initMainAppData
9
+ import {
10
+ isMicroApp,
11
+ isBaseMicroApp,
12
+ mainAppApis,
13
+ mainAppEvents,
14
+ mainPageUrl,
15
+ initMainAppData,
16
+ EnvConfig,
17
+ initEnv,
16
18
  } from "@/utils/micro-app";
19
+
17
20
  import type {
18
21
  MainAppData,
19
22
  MainOpenApis,
@@ -44,13 +47,15 @@ export type { LoginInfo, UserInfo };
44
47
 
45
48
  export { combineParams };
46
49
 
47
- export {
48
- isMicroApp,
49
- isBaseMicroApp,
50
- mainAppApis,
51
- mainAppEvents,
52
- mainPageUrl,
53
- initMainAppData
50
+ export {
51
+ isMicroApp,
52
+ isBaseMicroApp,
53
+ mainAppApis,
54
+ mainAppEvents,
55
+ mainPageUrl,
56
+ initMainAppData,
57
+ EnvConfig,
58
+ initEnv,
54
59
  };
55
60
  export type {
56
61
  MainAppData,
@@ -3,17 +3,17 @@ import { HostInfo } from "@/stores/hostInfo";
3
3
  import { SettingInfo } from "@/stores/settingInfo";
4
4
  import { LoginInfo, UserInfo } from "@/stores/userInfo";
5
5
  import { ApiResponse } from "@skyfox2000/fapi";
6
- import { Ref, ref } from "vue";
6
+ import { ref } from "vue";
7
7
  /**
8
8
  * 是否微服务运行环境
9
9
  * @returns
10
10
  */
11
11
  export const isMicroApp = (): boolean => {
12
- // @ts-ignore
13
- if (window.__MICRO_APP_ENVIRONMENT__) {
14
- return true;
15
- }
16
- return false;
12
+ // @ts-ignore
13
+ if (window.__MICRO_APP_ENVIRONMENT__) {
14
+ return true;
15
+ }
16
+ return false;
17
17
  };
18
18
 
19
19
  /**
@@ -21,85 +21,81 @@ export const isMicroApp = (): boolean => {
21
21
  * @returns
22
22
  */
23
23
  export const isBaseMicroApp = (): boolean => {
24
- // @ts-ignore
25
- if (window.__MICRO_APP_BASE_APPLICATION__) {
26
- return true;
27
- }
28
- return false;
24
+ // @ts-ignore
25
+ if (window.__MICRO_APP_BASE_APPLICATION__) {
26
+ return true;
27
+ }
28
+ return false;
29
29
  };
30
30
 
31
31
  /**
32
32
  * 主应用初始化数据格式
33
33
  */
34
34
  export interface MainAppData {
35
- /**
36
- * 主应用开放接口
37
- */
38
- MainApis: MainOpenApis;
39
- /**
40
- * 主应用开放事件
41
- */
42
- MainEvents: MainOpenEvents;
43
- /**
44
- * 加载的页面地址
45
- */
46
- pageUrl: string;
35
+ /**
36
+ * 主应用开放接口
37
+ */
38
+ MainApis: MainOpenApis;
39
+ /**
40
+ * 主应用开放事件
41
+ */
42
+ MainEvents: MainOpenEvents;
43
+ /**
44
+ * 加载的页面地址
45
+ */
46
+ pageUrl: string;
47
47
  }
48
48
 
49
49
  /**
50
50
  * 主应用开放接口
51
51
  */
52
52
  export interface MainOpenApis {
53
- /**
54
- * 获取HostInfo
55
- */
56
- getHostInfo: () => HostInfo;
57
- /**
58
- * 获取当前应用AppInfo
59
- */
60
- getAppInfo: () => AppInfo;
61
- /**
62
- * 主机解析图标库并同步到子应用
63
- */
64
- createIconLib: (iconLib: Ref<Record<string, any>>) => void;
65
- /**
66
- * 用户注册接口
67
- */
68
- userRegister?: () => void;
69
- /**
70
- * 用户登录接口
71
- */
72
- userLogin?: (loginInfo: LoginInfo) => Promise<ApiResponse<LoginInfo> | void>;
73
- /**
74
- * 用户注销接口
75
- */
76
- userLogout?: () => Promise<ApiResponse<any> | void>;
77
- /**
78
- * 获取授权码
79
- * @returns 授权码
80
- */
81
- getToken: () => string;
82
- /**
83
- * 获取当前用户信息
84
- */
85
- getUserInfo: () => UserInfo;
86
- /**
87
- * 获取前端设置信息
88
- */
89
- getSettingInfo?: () => SettingInfo;
90
- /**
91
- * 子应用推送路由变更
92
- */
93
- mainAppPush?: (subPath: string) => void;
53
+ /**
54
+ * 获取HostInfo
55
+ */
56
+ getHostInfo: () => HostInfo;
57
+ /**
58
+ * 获取当前应用AppInfo
59
+ */
60
+ getAppInfo: () => AppInfo;
61
+ /**
62
+ * 用户注册接口
63
+ */
64
+ userRegister?: () => void;
65
+ /**
66
+ * 用户登录接口
67
+ */
68
+ userLogin?: (loginInfo: LoginInfo) => Promise<ApiResponse<LoginInfo> | void>;
69
+ /**
70
+ * 用户注销接口
71
+ */
72
+ userLogout?: () => Promise<ApiResponse<any> | void>;
73
+ /**
74
+ * 获取授权码
75
+ * @returns 授权码
76
+ */
77
+ getToken: () => string;
78
+ /**
79
+ * 获取当前用户信息
80
+ */
81
+ getUserInfo: () => UserInfo;
82
+ /**
83
+ * 获取前端设置信息
84
+ */
85
+ getSettingInfo?: () => SettingInfo;
86
+ /**
87
+ * 子应用推送路由变更
88
+ */
89
+ mainAppPush?: (subPath: string) => void;
94
90
  }
95
91
  /**
96
92
  * 主应用开放事件注册
97
93
  */
98
94
  export interface MainOpenEvents {
99
- /**
100
- * 前端设置信息变更
101
- */
102
- onSettingChanged?: () => void;
95
+ /**
96
+ * 前端设置信息变更
97
+ */
98
+ onSettingChanged?: () => void;
103
99
  }
104
100
 
105
101
  export const mainAppApis = ref<MainOpenApis | undefined>();
@@ -110,12 +106,28 @@ export const mainPageUrl = ref<string | undefined>();
110
106
  * 从页面加载处获取接口
111
107
  */
112
108
  export const initMainAppData = () => {
113
- const mainAppData: MainAppData = window.microApp.getData(
114
- true
115
- ) as unknown as MainAppData;
116
- if (mainAppData) {
117
- mainAppApis.value = mainAppData.MainApis;
118
- mainAppEvents.value = mainAppData.MainEvents;
119
- mainPageUrl.value = mainAppData.pageUrl;
120
- }
109
+ const mainAppData: MainAppData = window.microApp.getData(
110
+ true
111
+ ) as unknown as MainAppData;
112
+ if (mainAppData) {
113
+ mainAppApis.value = mainAppData.MainApis;
114
+ mainAppEvents.value = mainAppData.MainEvents;
115
+ mainPageUrl.value = mainAppData.pageUrl;
116
+ }
117
+ };
118
+
119
+ /**
120
+ * 统一环境变量配置
121
+ */
122
+ export const EnvConfig: {
123
+ [key: string]: string;
124
+ } = {};
125
+
126
+ /**
127
+ * 初始化环境变量
128
+ */
129
+ export const initEnv = (metaEnv: ImportMetaEnv) => {
130
+ for (const key in metaEnv) {
131
+ EnvConfig[key] = metaEnv[key];
132
+ }
121
133
  };
package/vite.config.ts CHANGED
@@ -8,7 +8,7 @@ import dts from "vite-plugin-dts";
8
8
  export default defineConfig(({ mode }: ConfigEnv) => {
9
9
  const root = process.cwd();
10
10
  const env = loadEnv(mode, root);
11
- console.log(env);
11
+ console.log(new Date().toLocaleTimeString(), " ", env);
12
12
 
13
13
  return {
14
14
  plugins: [