@x-9lab/xlab 1.4.0 → 1.5.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.
@@ -1,159 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- setRandomStr: ()=>setRandomStr,
13
- setDefHeaders: ()=>setDefHeaders,
14
- fetch: ()=>httpFetch,
15
- get: ()=>requsetGet,
16
- post: ()=>requestPost
17
- });
18
- const _utils = require("@x-drive/utils");
19
- const _nodeFetchWarper = require("@x-drive/node-fetch-warper");
20
- const _resolveUri = /*#__PURE__*/ _interopRequireDefault(require("./resolve-uri"));
21
- const _common = require("../common");
22
- const _util = require("util");
23
- function _interopRequireDefault(obj) {
24
- return obj && obj.__esModule ? obj : {
25
- default: obj
26
- };
27
- }
28
- const reqLog = log.getLogger("Request");
29
- /**给指定对象增加一个随机字符串 */ function setRandomStr(query) {
30
- if ((0, _utils.isObject)(query) && (0, _utils.isUndefined)(query._)) {
31
- query._ = Date.now().toString(16);
32
- }
33
- }
34
- /**
35
- * 处理请求地址上的参数
36
- * @param uri 待处理地址
37
- * @param params 地址 param 参数
38
- */ function processParams(uri, params) {
39
- if ((0, _utils.isObject)(params)) {
40
- uri = (0, _utils.labelReplace)(uri, params, true, true);
41
- }
42
- return uri;
43
- }
44
- /**
45
- * 处理请求上的 search 参数
46
- * @param uri 待处理地址
47
- * @param query 参数对象
48
- */ function processQuery(uri, query) {
49
- if ((0, _utils.isObject)(query)) {
50
- uri = (0, _utils.addQuery)(uri, query);
51
- }
52
- return uri;
53
- }
54
- /**
55
- * 预处理请求地址
56
- * @param uri 请求地址
57
- * @param query 请求参数
58
- */ function preProcessor(uri, query, random = false) {
59
- if (random === true) {
60
- setRandomStr(query);
61
- }
62
- return processQuery(processParams(uri, query), query);
63
- }
64
- /**默认 Headers */ const DEF_HEADERS = {};
65
- /**设置默认 Headers */ function setDefHeaders(headers) {
66
- if ((0, _utils.isObject)(headers)) {
67
- Object.keys(headers).forEach((key)=>DEF_HEADERS[key] = headers[key]);
68
- }
69
- }
70
- /**获取待发送的请求的 headers */ function getHeaders(headers, uri) {
71
- headers = (0, _utils.extend)((0, _utils.copy)(DEF_HEADERS), headers || {});
72
- if ((0, _utils.isString)(uri)) {
73
- const url = new URL(uri);
74
- headers.Host = url.host;
75
- headers.Origin = url.origin;
76
- }
77
- return headers;
78
- }
79
- const DEF_CONFIG = {
80
- "type": "json",
81
- "sameOrigin": false
82
- };
83
- /**
84
- * 获取数据
85
- * @param type 请求类型
86
- * @param uri 请求地址
87
- * @param query 请求参数
88
- * @param data 发送数据
89
- * @param config 请求配置
90
- * @param needProcessConfig 是否需要处理配置
91
- */ async function httpFetch(type, uri, query, data, config, retry, needProcessConfig = true) {
92
- if (needProcessConfig) {
93
- config = (0, _utils.extend)((0, _utils.copy)(DEF_CONFIG), config || {});
94
- if ((0, _utils.isNumber)(config.retry) && config.retry > 0) {
95
- retry = config.retry;
96
- }
97
- }
98
- try {
99
- const method = type.toUpperCase();
100
- const options = {
101
- method
102
- };
103
- Object.keys(config).forEach((key)=>{
104
- if (key !== "headers") {
105
- options[key] = config[key];
106
- }
107
- });
108
- options.headers = getHeaders(config.headers, config.sameOrigin ? uri : null);
109
- const url = preProcessor((0, _resolveUri.default)(uri), query, config === null || config === void 0 ? void 0 : config.random);
110
- if (data) {
111
- options.body = data;
112
- }
113
- const fetch = await (0, _nodeFetchWarper.getFetch)();
114
- const resp = await fetch(url, options);
115
- if (resp) {
116
- if ((0, _utils.isExecutable)(config.onResponse)) {
117
- await config.onResponse(resp);
118
- }
119
- const data1 = await resp[config.type]();
120
- return data1;
121
- }
122
- return null;
123
- } catch (e) {
124
- reqLog.error((0, _util.inspect)(e));
125
- if (retry && retry > 0) {
126
- if ((0, _utils.isNumber)(config.retryDelay) && config.retryDelay > 0) {
127
- await (0, _common.sleep)(config.retryDelay, reqLog);
128
- }
129
- retry -= 1;
130
- return await httpFetch(type, uri, query, data, config, retry, false);
131
- }
132
- return null;
133
- }
134
- }
135
- /**
136
- * 发起一个 get 请求
137
- * @param uri 请求地址
138
- * @param query 请求参数
139
- */ async function requsetGet(uri, query, config) {
140
- return await httpFetch("get", uri, query, null, config);
141
- }
142
- /**
143
- * 发起一个 post 请求
144
- * @param uri 请求地址
145
- * @param query 请求参数
146
- * @param data 请求数据
147
- */ async function requestPost(uri, query, data, config) {
148
- if (query && (0, _utils.isUndefined)(data)) {
149
- data = query;
150
- query = {};
151
- }
152
- if ((0, _utils.isUndefined)(query)) {
153
- query = {};
154
- }
155
- if ((0, _utils.isUndefined)(data)) {
156
- data = {};
157
- }
158
- return await httpFetch("post", uri, query, data, config);
159
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: ()=>_default
8
- });
9
- const _utils = require("@x-drive/utils");
10
- const internalServers = getSysConfig("internalServers");
11
- const Apis = getSysConfig("internalApis");
12
- const ApiMap = new Map();
13
- Object.keys(Apis).forEach((key)=>{
14
- let url = Apis[key];
15
- url = (0, _utils.labelReplace)(url, internalServers, true);
16
- ApiMap.set(key, url);
17
- });
18
- /**
19
- * 解析请求别名
20
- * @param uri 请求地址
21
- */ function resolve(uri) {
22
- var url = ApiMap.get(uri);
23
- if (url) {
24
- return url;
25
- }
26
- return uri;
27
- }
28
- const _default = resolve;
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- compareVersion: ()=>compareVersion,
13
- matchRange: ()=>matchRange,
14
- matchAny: ()=>matchAny
15
- });
16
- /**
17
- * 比较版本
18
- * @param v1 样本版本
19
- * @param v2 对比版本
20
- * @returns 对比结果:
21
- * - 1 样本大于对比
22
- * - 0 两者相等
23
- * - -1 对比大于样本
24
- */ function compareVersion(v1, v2) {
25
- if (!v1 || !v2) {
26
- return 0;
27
- }
28
- const v1s = v1.split(".");
29
- const v2s = v2.split(".");
30
- const v1l = v1s.length;
31
- const v2l = v2s.length;
32
- const len = v1l > v2l ? v1l : v2l;
33
- for(let i = 0; i < len; i++){
34
- var b1 = i < v1l ? Number(v1s[i]) : 0, b2 = i < v2l ? Number(v2s[i]) : 0;
35
- if (b1 > b2) {
36
- return 1;
37
- } else if (b2 > b1) {
38
- return -1;
39
- }
40
- }
41
- return 0;
42
- }
43
- /**
44
- * 匹配范围
45
- * @param range 版本范围
46
- * @param v 对比版本
47
- */ function matchRange(range, v) {
48
- if (!range || !v) {
49
- return false;
50
- }
51
- const ranges = range.split("~");
52
- const v1 = ranges[0];
53
- const v2 = ranges[1];
54
- return (v1 === "" || compareVersion(v1, v) <= 0) && (v2 === "" || compareVersion(v2, v) > 0);
55
- }
56
- /**
57
- * 匹配任意
58
- * @param range 范围
59
- * @param v 对比
60
- * @param ignoreCase 忽略大小写
61
- */ function matchAny(range, v, ignoreCase) {
62
- if (!range || !v) {
63
- return false;
64
- }
65
- var ranges = range.split("|");
66
- const len = ranges.length;
67
- if (ignoreCase) {
68
- if (Array.isArray(v)) {
69
- v = v.map(function(v) {
70
- return v.toLowerCase();
71
- });
72
- } else {
73
- v = v.toLowerCase();
74
- }
75
- ranges = ranges.map(function(r) {
76
- return r.toLowerCase();
77
- });
78
- }
79
- for(var i = 0; i < len; i++){
80
- var r = ranges[i];
81
- if (Array.isArray(v)) {
82
- var result = false;
83
- v.forEach(function(v) {
84
- if (!result && r === v) {
85
- result = true;
86
- }
87
- });
88
- if (result) {
89
- return true;
90
- }
91
- } else if (r === v) {
92
- return true;
93
- }
94
- }
95
- return false;
96
- }