@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 +8 -0
- package/lib/index.d.ts +12 -4
- package/lib/microbase.es.js +42 -37
- package/package.json +4 -3
- package/src/index.ts +19 -14
- package/src/utils/micro-app.ts +88 -76
- package/vite.config.ts +1 -1
package/.cursorignore
ADDED
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
|
*/
|
package/lib/microbase.es.js
CHANGED
|
@@ -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
|
|
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,
|
|
6
|
-
if (!(!
|
|
7
|
-
for (const
|
|
8
|
-
|
|
9
|
-
},
|
|
10
|
-
const
|
|
11
|
-
for (const
|
|
12
|
-
|
|
13
|
-
for (const
|
|
14
|
-
|
|
15
|
-
for (const
|
|
16
|
-
|
|
17
|
-
return
|
|
18
|
-
}, I = () => !!window.__MICRO_APP_ENVIRONMENT__,
|
|
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 =
|
|
30
|
-
history:
|
|
31
|
-
routes:
|
|
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:
|
|
36
|
-
|
|
38
|
+
const { mainAppPush: t } = i.value;
|
|
39
|
+
t && t(e.hash);
|
|
37
40
|
}
|
|
38
41
|
});
|
|
39
|
-
const
|
|
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
|
|
42
|
-
if (
|
|
43
|
-
const
|
|
44
|
-
s.value = p(
|
|
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
|
-
},
|
|
62
|
-
f.value = e, window.microApp && window.microApp.addDataListener(async (
|
|
63
|
-
if (
|
|
64
|
-
let
|
|
65
|
-
|
|
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
|
-
|
|
73
|
-
R as
|
|
74
|
-
E as
|
|
75
|
-
|
|
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
|
-
|
|
82
|
+
h as loadModule,
|
|
78
83
|
i as mainAppApis,
|
|
79
84
|
A as mainAppEvents,
|
|
80
85
|
M as mainPageUrl,
|
|
81
|
-
|
|
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
|
|
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
|
-
"
|
|
26
|
-
"@
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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,
|
package/src/utils/micro-app.ts
CHANGED
|
@@ -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 {
|
|
6
|
+
import { ref } from "vue";
|
|
7
7
|
/**
|
|
8
8
|
* 是否微服务运行环境
|
|
9
9
|
* @returns
|
|
10
10
|
*/
|
|
11
11
|
export const isMicroApp = (): boolean => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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: [
|