@wapri/ghermes 2.0.10 → 3.0.0-beta.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/dist/base.d.ts +2 -0
- package/dist/base.js +9 -4
- package/dist/constants/domain.d.ts +38 -28
- package/dist/constants/domain.js +69 -45
- package/dist/demo/custom-interceptor.js +3 -2
- package/dist/modules/auth/index.d.ts +1 -1
- package/dist/modules/auth/index.js +5 -10
- package/dist/modules/file/index.js +2 -2
- package/dist/types/common.d.ts +5 -0
- package/package.json +2 -2
package/dist/base.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ import { Env } from '@wapri/gbase';
|
|
|
10
10
|
export default class HermesBase {
|
|
11
11
|
readonly env: Env;
|
|
12
12
|
private readonly baseUrl;
|
|
13
|
+
/** 网关前缀,业务中心地址为 `${servicePrefix}${SERVICE_PATHS[key]}` */
|
|
14
|
+
readonly servicePrefix: string;
|
|
13
15
|
/** axios实例 */
|
|
14
16
|
readonly instance: AxiosInstance;
|
|
15
17
|
/** 拦截器配置 */
|
package/dist/base.js
CHANGED
|
@@ -19,13 +19,15 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
19
19
|
|
|
20
20
|
import axios from 'axios';
|
|
21
21
|
import { isEmpty, Env, getToken as _getToken } from '@wapri/gbase';
|
|
22
|
-
import {
|
|
22
|
+
import { createServerDomains, DEFAULT_SERVICE_PREFIX } from "./constants/domain";
|
|
23
23
|
import { axiosTransformSafeLong } from "./utils/snowflake";
|
|
24
24
|
var HermesBase = /*#__PURE__*/function () {
|
|
25
25
|
function HermesBase(config) {
|
|
26
26
|
_classCallCheck(this, HermesBase);
|
|
27
27
|
_defineProperty(this, "env", void 0);
|
|
28
28
|
_defineProperty(this, "baseUrl", '');
|
|
29
|
+
/** 网关前缀,业务中心地址为 `${servicePrefix}${SERVICE_PATHS[key]}` */
|
|
30
|
+
_defineProperty(this, "servicePrefix", void 0);
|
|
29
31
|
/** axios实例 */
|
|
30
32
|
_defineProperty(this, "instance", void 0);
|
|
31
33
|
/** 拦截器配置 */
|
|
@@ -60,8 +62,10 @@ var HermesBase = /*#__PURE__*/function () {
|
|
|
60
62
|
removeToken = config.removeToken,
|
|
61
63
|
unwrapResponse = config.unwrapResponse,
|
|
62
64
|
onError = config.onError,
|
|
63
|
-
onUnauthorized = config.onUnauthorized
|
|
65
|
+
onUnauthorized = config.onUnauthorized,
|
|
66
|
+
servicePrefix = config.servicePrefix;
|
|
64
67
|
this.env = env;
|
|
68
|
+
this.servicePrefix = servicePrefix || DEFAULT_SERVICE_PREFIX;
|
|
65
69
|
this.baseUrl = this.initialBaseUrl(config);
|
|
66
70
|
this.interceptor = interceptor;
|
|
67
71
|
this.retry = this.initialRetry(retry);
|
|
@@ -84,13 +88,14 @@ var HermesBase = /*#__PURE__*/function () {
|
|
|
84
88
|
_createClass(HermesBase, [{
|
|
85
89
|
key: "initialBaseUrl",
|
|
86
90
|
value: function initialBaseUrl(config) {
|
|
87
|
-
var
|
|
91
|
+
var _createServerDomains$;
|
|
88
92
|
var _config$env2 = config.env,
|
|
89
93
|
env = _config$env2 === void 0 ? Env.PROD : _config$env2,
|
|
90
94
|
baseUrl = config.baseUrl,
|
|
91
95
|
_config$module = config.module,
|
|
92
96
|
module = _config$module === void 0 ? 'store' : _config$module;
|
|
93
|
-
|
|
97
|
+
if (baseUrl) return baseUrl;
|
|
98
|
+
return (_createServerDomains$ = createServerDomains(this.servicePrefix)[module]) === null || _createServerDomains$ === void 0 ? void 0 : _createServerDomains$[env];
|
|
94
99
|
}
|
|
95
100
|
|
|
96
101
|
/** 设置重试配置 */
|
|
@@ -1,34 +1,44 @@
|
|
|
1
1
|
import { Env } from '@wapri/gbase';
|
|
2
2
|
/**
|
|
3
3
|
* 服务端模块(域名维度):
|
|
4
|
-
* - store / admin 为终端维度(门店端 /
|
|
5
|
-
* -
|
|
6
|
-
* - gateway
|
|
4
|
+
* - store / admin 为终端维度(门店端 / 平台端),直接使用网关前缀
|
|
5
|
+
* - 其余为业务中心维度,走「网关前缀 + 服务路径」
|
|
6
|
+
* - gateway 为网关管控台独立实例
|
|
7
|
+
*
|
|
8
|
+
* 网关前缀属于业务侧部署信息,通过 `HermesBaseConfig.servicePrefix` 传入;
|
|
9
|
+
* 库里只保留路径段(`/permission-center` 等)与默认前缀 `/api`。
|
|
7
10
|
*/
|
|
8
11
|
export type ServerDomainKey = 'store' | 'admin' | 'permission' | 'merchant' | 'goods' | 'marketing' | 'pay' | 'order' | 'express' | 'file' | 'capability' | 'message' | 'cart' | 'gateway' | 'aftersale' | 'invoice' | 'auth';
|
|
9
|
-
/**
|
|
10
|
-
export declare const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
pre: string;
|
|
29
|
-
prod: string;
|
|
30
|
-
};
|
|
31
|
-
aftersale: Record<Env, string>;
|
|
32
|
-
invoice: Record<Env, string>;
|
|
33
|
-
auth: Record<Env, string>;
|
|
12
|
+
/** 默认网关前缀,业务可通过 `HermesBaseConfig.servicePrefix` 覆盖 */
|
|
13
|
+
export declare const DEFAULT_SERVICE_PREFIX = "/api";
|
|
14
|
+
/** 各业务中心相对网关前缀的路径段 */
|
|
15
|
+
export declare const SERVICE_PATHS: {
|
|
16
|
+
readonly permission: "/permission-center";
|
|
17
|
+
readonly merchant: "/merchant";
|
|
18
|
+
readonly goods: "/goods-center";
|
|
19
|
+
readonly marketing: "/marketing-center";
|
|
20
|
+
readonly pay: "/pay-center";
|
|
21
|
+
readonly order: "/order-center";
|
|
22
|
+
readonly express: "/express-center";
|
|
23
|
+
readonly file: "/file";
|
|
24
|
+
readonly capability: "/capability";
|
|
25
|
+
readonly message: "/message";
|
|
26
|
+
readonly cart: "/cart-center";
|
|
27
|
+
readonly aftersale: "/after-sale-center";
|
|
28
|
+
readonly invoice: "/invoice/v1";
|
|
29
|
+
readonly auth: "/auth";
|
|
30
|
+
readonly gateway: "/gateway/admin";
|
|
34
31
|
};
|
|
32
|
+
/** 业务中心模块 */
|
|
33
|
+
export type ServiceDomainKey = keyof typeof SERVICE_PATHS;
|
|
34
|
+
/**
|
|
35
|
+
* 按网关前缀推导各模块地址。
|
|
36
|
+
*
|
|
37
|
+
* 业务中心地址统一是 `${servicePrefix}${SERVICE_PATHS[key]}`,
|
|
38
|
+
* 如 `servicePrefix = '/api'` 时商品中心为 `/api/goods-center`。
|
|
39
|
+
*
|
|
40
|
+
* @param servicePrefix 网关前缀
|
|
41
|
+
*/
|
|
42
|
+
export declare const createServerDomains: (servicePrefix?: string) => Record<ServerDomainKey, Record<Env, string>>;
|
|
43
|
+
/** 默认地址表(不传配置时使用) */
|
|
44
|
+
export declare const serverDomains: Record<ServerDomainKey, Record<Env, string>>;
|
package/dist/constants/domain.js
CHANGED
|
@@ -4,53 +4,77 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
4
4
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
5
5
|
import { Env } from '@wapri/gbase';
|
|
6
6
|
|
|
7
|
-
/**
|
|
8
|
-
* 服务端模块(域名维度):
|
|
9
|
-
* - store / admin 为终端维度(门店端 /
|
|
10
|
-
* -
|
|
11
|
-
* - gateway
|
|
7
|
+
/**
|
|
8
|
+
* 服务端模块(域名维度):
|
|
9
|
+
* - store / admin 为终端维度(门店端 / 平台端),直接使用网关前缀
|
|
10
|
+
* - 其余为业务中心维度,走「网关前缀 + 服务路径」
|
|
11
|
+
* - gateway 为网关管控台独立实例
|
|
12
|
+
*
|
|
13
|
+
* 网关前缀属于业务侧部署信息,通过 `HermesBaseConfig.servicePrefix` 传入;
|
|
14
|
+
* 库里只保留路径段(`/permission-center` 等)与默认前缀 `/api`。
|
|
12
15
|
*/
|
|
13
16
|
|
|
14
|
-
/**
|
|
15
|
-
var
|
|
17
|
+
/** 默认网关前缀,业务可通过 `HermesBaseConfig.servicePrefix` 覆盖 */
|
|
18
|
+
export var DEFAULT_SERVICE_PREFIX = '/api';
|
|
16
19
|
|
|
17
|
-
/**
|
|
18
|
-
export var
|
|
19
|
-
permission: '/
|
|
20
|
-
merchant: '/
|
|
21
|
-
goods: '/
|
|
22
|
-
marketing: '/
|
|
23
|
-
pay: '/
|
|
24
|
-
order: '/
|
|
25
|
-
express: '/
|
|
26
|
-
file: '/
|
|
27
|
-
capability: '/
|
|
28
|
-
message: '/
|
|
29
|
-
cart: '/
|
|
30
|
-
aftersale: '/
|
|
20
|
+
/** 各业务中心相对网关前缀的路径段 */
|
|
21
|
+
export var SERVICE_PATHS = {
|
|
22
|
+
permission: '/permission-center',
|
|
23
|
+
merchant: '/merchant',
|
|
24
|
+
goods: '/goods-center',
|
|
25
|
+
marketing: '/marketing-center',
|
|
26
|
+
pay: '/pay-center',
|
|
27
|
+
order: '/order-center',
|
|
28
|
+
express: '/express-center',
|
|
29
|
+
file: '/file',
|
|
30
|
+
capability: '/capability',
|
|
31
|
+
message: '/message',
|
|
32
|
+
cart: '/cart-center',
|
|
33
|
+
aftersale: '/after-sale-center',
|
|
31
34
|
invoice: '/invoice/v1',
|
|
32
|
-
auth: '/auth'
|
|
35
|
+
auth: '/auth',
|
|
36
|
+
gateway: '/gateway/admin'
|
|
33
37
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
38
|
+
|
|
39
|
+
/** 业务中心模块 */
|
|
40
|
+
|
|
41
|
+
var buildEnvPaths = function buildEnvPaths(path) {
|
|
42
|
+
return _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, Env.DEV, path), Env.TEST, path), Env.PRE, path), Env.PROD, path);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* 按网关前缀推导各模块地址。
|
|
47
|
+
*
|
|
48
|
+
* 业务中心地址统一是 `${servicePrefix}${SERVICE_PATHS[key]}`,
|
|
49
|
+
* 如 `servicePrefix = '/api'` 时商品中心为 `/api/goods-center`。
|
|
50
|
+
*
|
|
51
|
+
* @param servicePrefix 网关前缀
|
|
52
|
+
*/
|
|
53
|
+
export var createServerDomains = function createServerDomains() {
|
|
54
|
+
var servicePrefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SERVICE_PREFIX;
|
|
55
|
+
var resolve = function resolve(key) {
|
|
56
|
+
return buildEnvPaths("".concat(servicePrefix).concat(SERVICE_PATHS[key]));
|
|
57
|
+
};
|
|
58
|
+
return {
|
|
59
|
+
store: buildEnvPaths(servicePrefix),
|
|
60
|
+
admin: buildEnvPaths(servicePrefix),
|
|
61
|
+
permission: resolve('permission'),
|
|
62
|
+
merchant: resolve('merchant'),
|
|
63
|
+
goods: resolve('goods'),
|
|
64
|
+
marketing: resolve('marketing'),
|
|
65
|
+
pay: resolve('pay'),
|
|
66
|
+
order: resolve('order'),
|
|
67
|
+
express: resolve('express'),
|
|
68
|
+
file: resolve('file'),
|
|
69
|
+
capability: resolve('capability'),
|
|
70
|
+
message: resolve('message'),
|
|
71
|
+
cart: resolve('cart'),
|
|
72
|
+
gateway: resolve('gateway'),
|
|
73
|
+
aftersale: resolve('aftersale'),
|
|
74
|
+
invoice: resolve('invoice'),
|
|
75
|
+
auth: resolve('auth')
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/** 默认地址表(不传配置时使用) */
|
|
80
|
+
export var serverDomains = createServerDomains();
|
|
@@ -12,7 +12,8 @@ import { Hermes } from "./..";
|
|
|
12
12
|
var hermes = new Hermes({
|
|
13
13
|
env: Env.DEV,
|
|
14
14
|
module: 'merchant',
|
|
15
|
-
|
|
15
|
+
// 网关根地址:业务按自身部署传入,仓库内不写死环境域名
|
|
16
|
+
baseUrl: '/api',
|
|
16
17
|
interceptor: {
|
|
17
18
|
plugin: ['trace'],
|
|
18
19
|
// 自定义请求拦截器:内置拦截器执行后追加,可继续修改 config
|
|
@@ -36,7 +37,7 @@ var Demo = function Demo() {
|
|
|
36
37
|
_context.next = 3;
|
|
37
38
|
return hermes.instance.request({
|
|
38
39
|
method: 'get',
|
|
39
|
-
url: '/
|
|
40
|
+
url: '/permission-center/system/menu/list'
|
|
40
41
|
});
|
|
41
42
|
case 3:
|
|
42
43
|
res = _context.sent;
|
|
@@ -14,7 +14,7 @@ export declare class HermesModuleAuth {
|
|
|
14
14
|
oauthCallback(params: AccountOAuthCallbackRequest): Promise<AccountLoginResponse> | undefined;
|
|
15
15
|
/** 退出登录。 */
|
|
16
16
|
logout(): Promise<unknown> | undefined;
|
|
17
|
-
/**
|
|
17
|
+
/** 签发短时一次性票据(scene / clientType 由业务按认证中心约定传入)。 */
|
|
18
18
|
getTicket(data?: TicketIssueRequest): Promise<TicketIssueDto> | undefined;
|
|
19
19
|
/** 用票据兑换登录态。 */
|
|
20
20
|
ticketGetToken(data: {
|
|
@@ -7,14 +7,14 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
7
7
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
8
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
9
9
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
|
-
import {
|
|
10
|
+
import { SERVICE_PATHS } from "../../constants";
|
|
11
11
|
export var HermesModuleAuth = /*#__PURE__*/function () {
|
|
12
12
|
function HermesModuleAuth(hermes) {
|
|
13
13
|
_classCallCheck(this, HermesModuleAuth);
|
|
14
14
|
_defineProperty(this, "hermes", void 0);
|
|
15
15
|
_defineProperty(this, "baseUrl", '');
|
|
16
16
|
this.hermes = hermes;
|
|
17
|
-
this.baseUrl =
|
|
17
|
+
this.baseUrl = "".concat(hermes.servicePrefix).concat(SERVICE_PATHS.auth);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/** 认证中心统一登录。 */
|
|
@@ -90,7 +90,7 @@ export var HermesModuleAuth = /*#__PURE__*/function () {
|
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
/**
|
|
93
|
+
/** 签发短时一次性票据(scene / clientType 由业务按认证中心约定传入)。 */
|
|
94
94
|
}, {
|
|
95
95
|
key: "getTicket",
|
|
96
96
|
value: function getTicket(data) {
|
|
@@ -98,10 +98,7 @@ export var HermesModuleAuth = /*#__PURE__*/function () {
|
|
|
98
98
|
return (_this$hermes6 = this.hermes) === null || _this$hermes6 === void 0 ? void 0 : _this$hermes6.instance.request({
|
|
99
99
|
method: 'post',
|
|
100
100
|
url: "".concat(this.baseUrl, "/ticket/issue"),
|
|
101
|
-
data: _objectSpread({
|
|
102
|
-
scene: 'LOGISTICS_TRACKING',
|
|
103
|
-
clientType: 'H5'
|
|
104
|
-
}, data || {})
|
|
101
|
+
data: _objectSpread({}, data || {})
|
|
105
102
|
});
|
|
106
103
|
}
|
|
107
104
|
|
|
@@ -113,9 +110,7 @@ export var HermesModuleAuth = /*#__PURE__*/function () {
|
|
|
113
110
|
return (_this$hermes7 = this.hermes) === null || _this$hermes7 === void 0 ? void 0 : _this$hermes7.instance.request({
|
|
114
111
|
method: 'post',
|
|
115
112
|
url: "".concat(this.baseUrl, "/ticket/exchange"),
|
|
116
|
-
data: _objectSpread({
|
|
117
|
-
deviceId: 'H5 Session'
|
|
118
|
-
}, data || {}),
|
|
113
|
+
data: _objectSpread({}, data || {}),
|
|
119
114
|
headers: {
|
|
120
115
|
isToken: false
|
|
121
116
|
}
|
|
@@ -5,14 +5,14 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
5
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
7
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
-
import {
|
|
8
|
+
import { SERVICE_PATHS } from "../../constants";
|
|
9
9
|
export var HermesModuleFile = /*#__PURE__*/function () {
|
|
10
10
|
function HermesModuleFile(hermes) {
|
|
11
11
|
_classCallCheck(this, HermesModuleFile);
|
|
12
12
|
_defineProperty(this, "hermes", void 0);
|
|
13
13
|
_defineProperty(this, "baseUrl", '');
|
|
14
14
|
this.hermes = hermes;
|
|
15
|
-
this.baseUrl =
|
|
15
|
+
this.baseUrl = "".concat(hermes.servicePrefix).concat(SERVICE_PATHS.file);
|
|
16
16
|
}
|
|
17
17
|
_createClass(HermesModuleFile, [{
|
|
18
18
|
key: "tosGetSts",
|
package/dist/types/common.d.ts
CHANGED
|
@@ -26,6 +26,11 @@ export type RequestCommon = {
|
|
|
26
26
|
* @default usedCar
|
|
27
27
|
* */
|
|
28
28
|
module?: ServerDomainKey;
|
|
29
|
+
/**
|
|
30
|
+
* 网关前缀,业务中心地址统一是 `${servicePrefix}${SERVICE_PATHS[key]}`。
|
|
31
|
+
* @default '/api'
|
|
32
|
+
*/
|
|
33
|
+
servicePrefix?: string;
|
|
29
34
|
};
|
|
30
35
|
/**
|
|
31
36
|
* 业务自定义请求拦截器:在内置拦截器(token + plugin)执行后追加调用,可继续修改 config
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wapri/ghermes",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-beta.0",
|
|
4
4
|
"description": "公共请求库,维护了统一请求与不同模块的请求",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
],
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"axios": "^1.16.1",
|
|
17
|
-
"@wapri/gbase": "^1.0.0"
|
|
17
|
+
"@wapri/gbase": "^1.0.1-beta.0"
|
|
18
18
|
},
|
|
19
19
|
"publishConfig": {
|
|
20
20
|
"access": "public",
|