lgsso-sdk 1.0.5 → 1.0.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/src/utils.js ADDED
@@ -0,0 +1,103 @@
1
+ /*
2
+ * @Author: Robin LEI
3
+ * @Date: 2025-08-21 15:09:15
4
+ * @LastEditTime: 2025-08-21 15:22:11
5
+ * @FilePath: \lg-wms-admind:\业务代码\中联钢信\五服一管\lg-ssosdk\src\utils.js
6
+ */
7
+ /**
8
+ * 检查是否在浏览器环境
9
+ */
10
+ export function isBrowser() {
11
+ return typeof window !== 'undefined' && typeof document !== 'undefined';
12
+ }
13
+
14
+ /**
15
+ * 解析URL中的查询参数
16
+ * @param {string} name - 参数名
17
+ * @param {string} [url] - 可选URL,默认使用当前页面URL
18
+ * @returns {string|null} 参数值
19
+ */
20
+ export function getQueryParam(name, url) {
21
+ if (!isBrowser()) return null;
22
+
23
+ const targetUrl = url || window.location.href;
24
+ const urlObj = new URL(targetUrl);
25
+
26
+ // 先检查常规查询参数
27
+ let param = urlObj.searchParams.get(name);
28
+ if (param !== null) return param;
29
+
30
+ // 检查hash中的查询参数
31
+ if (urlObj.hash.includes('?')) {
32
+ const hashQuery = urlObj.hash.split('?')[1];
33
+ const hashParams = new URLSearchParams(hashQuery);
34
+ return hashParams.get(name);
35
+ }
36
+
37
+ return null;
38
+ }
39
+
40
+ /**
41
+ * 移除URL中的指定参数
42
+ * @param {string} name - 参数名
43
+ */
44
+ export function removeQueryParam(name) {
45
+ if (!isBrowser()) return;
46
+
47
+ const url = new URL(window.location.href);
48
+ let params, newUrl;
49
+
50
+ // 处理hash模式(参数在#之后)
51
+ if (url.hash.includes('?')) {
52
+ const [hashPath, hashQuery] = url.hash.split('?');
53
+ params = new URLSearchParams(hashQuery);
54
+
55
+ if (params.has(name)) {
56
+ params.delete(name);
57
+ const newHash = params.toString() ? `${hashPath}?${params.toString()}` : hashPath;
58
+ url.hash = newHash;
59
+ newUrl = url.toString();
60
+ }
61
+ }
62
+ // 处理history模式(参数在?之后)
63
+ else {
64
+ params = new URLSearchParams(url.search);
65
+ if (params.has(name)) {
66
+ params.delete(name);
67
+ url.search = params.toString();
68
+ newUrl = url.toString();
69
+ }
70
+ }
71
+
72
+ // 更新URL
73
+ if (newUrl && newUrl !== window.location.href) {
74
+ window.location.replace(newUrl);
75
+ }
76
+ }
77
+
78
+ /**
79
+ * 获取当前完整URL(包含所有参数)
80
+ * @returns {string} 当前URL
81
+ */
82
+ export function getCurrentUrlWithParams() {
83
+ if (!isBrowser()) return '';
84
+ return window.location.href;
85
+ }
86
+
87
+ /**
88
+ * 合并配置对象
89
+ * @param {Object} defaults - 默认配置
90
+ * @param {Object} options - 用户配置
91
+ * @returns {Object} 合并后的配置
92
+ */
93
+ export function mergeConfigs(defaults, options) {
94
+ if (!options) return { ...defaults };
95
+
96
+ const merged = { ...defaults };
97
+ for (const key in options) {
98
+ if (options.hasOwnProperty(key)) {
99
+ merged[key] = options[key];
100
+ }
101
+ }
102
+ return merged;
103
+ }
package/src/index.d.ts DELETED
@@ -1,92 +0,0 @@
1
- /*
2
- * @Author: Robin LEI
3
- * @Date: 2025-08-14 17:52:46
4
- * @LastEditTime: 2025-08-20 17:54:25
5
- * @FilePath: \lg-wms-admind:\业务代码\中联钢信\五服一管\lg-ssosdk\src\index.d.ts
6
- */
7
- // import type { Router } from 'vue-router';
8
-
9
- /**
10
- * lgsso-sdk 类型定义
11
- */
12
- declare namespace LgSso {
13
- /** 初始化配置参数类型 */
14
- interface InitOptions {
15
- /** URL中accessCode的参数名 */
16
- accessCodeKey?: string;
17
- /** 存储token的localStorage键名 */
18
- tokenKey?: string;
19
- /** 请求超时时间(毫秒) */
20
- timeout?: number;
21
- /** 自定义请求头 */
22
- headers?: Record<string, string>;
23
- /** 用accessCode换取token的接口地址 */
24
- tokenApi?: string;
25
- /** 用token换取新accessCode的接口地址 */
26
- refreshCodeApi?: string;
27
- /** 退出登录接口地址 */
28
- logoutApi?: string;
29
- /** 退出后重定向的地址 */
30
- logOutUrl?: string;
31
- /** Vue Router实例(用于路由同步) */
32
- router?: any;
33
- }
34
-
35
- /** 接口返回结果类型 */
36
- interface ApiResult {
37
- /** 状态码(0为成功) */
38
- code: number;
39
- /** 提示信息 */
40
- msg: string;
41
- /** 是否成功 */
42
- success: boolean;
43
- /** 业务数据(如token、accessCode等) */
44
- data?: any;
45
- }
46
- }
47
-
48
- /** lgsso-sdk 实例类型 */
49
- interface LgSsoInstance {
50
- /**
51
- * 初始化SDK
52
- * @param options 配置参数
53
- * @returns 接口返回结果
54
- */
55
- init: (options?: LgSso.InitOptions) => Promise<LgSso.ApiResult>;
56
-
57
- /**
58
- * 获取localStorage中的token
59
- * @returns token值或null
60
- */
61
- getToken: () => string | null;
62
-
63
- /**
64
- * 删除localStorage中的token
65
- */
66
- removeToken: () => void;
67
-
68
- /**
69
- * 退出登录
70
- * @returns 接口返回结果
71
- */
72
- logout: () => Promise<LgSso.ApiResult>;
73
-
74
- /**
75
- * 用token换取新accessCode并跳转
76
- * @param redirectUrl 目标跳转地址
77
- * @returns 接口返回结果
78
- */
79
- toUrl: (redirectUrl: string) => Promise<LgSso.ApiResult>;
80
-
81
- /**
82
- * 获取accessCode(通过token换取)
83
- * @returns 接口返回结果(data为accessCode)
84
- */
85
- getAccessCode: () => Promise<LgSso.ApiResult>;
86
- }
87
-
88
- declare const lgsso: LgSsoInstance;
89
-
90
- export default lgsso;
91
- export { LgSso };
92
-
package/webpack.config.js DELETED
@@ -1,32 +0,0 @@
1
- const path = require('path');
2
-
3
- module.exports = {
4
- entry: './src/index.js',
5
- output: {
6
- path: path.resolve(__dirname, 'dist'),
7
- filename: 'lgsso-sdk.js',
8
- library: 'lgssoSdk',
9
- libraryTarget: 'umd',
10
- globalObject: 'this',
11
- umdNamedDefine: true
12
- },
13
- module: {
14
- rules: [
15
- {
16
- test: /\.js$/,
17
- exclude: /node_modules/,
18
- use: {
19
- loader: 'babel-loader',
20
- options: {
21
- presets: ['@babel/preset-env']
22
- }
23
- }
24
- }
25
- ]
26
- },
27
- mode: 'production',
28
- optimization: {
29
- minimize: true
30
- }
31
- };
32
-