vap1 0.8.1 → 0.8.3
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/cems/index.d.ts +1 -0
- package/cems/index.js +3 -2
- package/package.json +1 -1
- package/utils/Ajax.d.ts +11 -2
- package/utils/Ajax.js +164 -39
- package/utils/PageUtil.js +10 -2
- package/utils/XHR.js +1 -1
- package/utils/_AjaxUtil.d.ts +0 -2
- package/utils/_AjaxUtil.js +66 -149
package/cems/index.d.ts
CHANGED
|
@@ -195,6 +195,7 @@ export declare const regExpTest: RegExpTest;
|
|
|
195
195
|
export declare const callWhereWhileFunc: CallWhereWhileFunc;
|
|
196
196
|
export declare const getApiData: GetApiData;
|
|
197
197
|
export declare const getUUIDFor16: GetUUIDFor16;
|
|
198
|
+
export declare const getApiDataXMLHttpRequest: GetApiDataXMLHttpRequest;
|
|
198
199
|
export declare const isOpenInCemsProject: boolean;
|
|
199
200
|
export declare const ChartBase: ChartBaseComponent;
|
|
200
201
|
export declare const ChartBar: ChartBarComponent;
|
package/cems/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.registerCustomComponent = exports.registerComponent = exports.CustomLibrary = exports.ComponentLibrary = exports.useDForm = exports.convertArrayToObject = exports.convertObjectToArray = exports.compareVersion = exports.uuid = exports.checkIpPort = exports.checkIpRange = exports.checkIPRangeIntersect = exports.DDrawer = exports.DIcon = exports.DDiv = exports.DCol = exports.DUpload = exports.DTree = exports.DTimePicker = exports.DPTable = exports.DTab = exports.DSwitch = exports.DSlider = exports.DSelect = exports.DSCTable = exports.DRadio = void 0;
|
|
3
|
+
exports.DInput = exports.DDynamicTreeSelect = exports.DDynamicSelect = exports.DDatePicker = exports.DColorPicker = exports.DCheckboxGroup = exports.DCheckbox = exports.DButton = exports.DApiTable = exports.DForm = exports.CForm = exports.formatCols = exports.formatColumns = exports.useDApiGlobal = exports.useDApi = exports.useDModals = exports.getReload = exports.AjaxPostData = exports.Patch = exports.DivWidth = exports.Sensitive = exports.DModalInfo = exports.DInfo = exports.DModalTable = exports.DTable = exports.CUpload = exports.ChartPie = exports.ChartBar = exports.ChartBase = exports.isOpenInCemsProject = exports.getApiDataXMLHttpRequest = exports.getUUIDFor16 = exports.getApiData = exports.callWhereWhileFunc = exports.regExpTest = exports.convertOptions = exports.initSchema = exports.rsa = exports.aesDecrypted = exports.aes = exports.md5 = exports.validator = exports.getOrgFlagByTreeIconNum = exports.getTreeIconNumByOrgFlag = exports.CustomPagination = exports.AsyncSelect = exports.EasyuiTree = exports.CardTable = exports.UTILS = exports.COMPONENTS = void 0;
|
|
4
|
+
exports.registerCustomComponent = exports.registerComponent = exports.CustomLibrary = exports.ComponentLibrary = exports.useDForm = exports.convertArrayToObject = exports.convertObjectToArray = exports.compareVersion = exports.uuid = exports.checkIpPort = exports.checkIpRange = exports.checkIPRangeIntersect = exports.DDrawer = exports.DIcon = exports.DDiv = exports.DCol = exports.DUpload = exports.DTree = exports.DTimePicker = exports.DPTable = exports.DTab = exports.DSwitch = exports.DSlider = exports.DSelect = exports.DSCTable = exports.DRadio = exports.DLabel = void 0;
|
|
5
5
|
/**
|
|
6
6
|
* 说明,如需要使用 `vap2/deps/cems` 请确保是 CEMS 应用/模块
|
|
7
7
|
*/
|
|
@@ -29,6 +29,7 @@ exports.regExpTest = exports.UTILS['regExpTest'];
|
|
|
29
29
|
exports.callWhereWhileFunc = exports.UTILS['callWhereWhileFunc'];
|
|
30
30
|
exports.getApiData = exports.UTILS['getApiData'];
|
|
31
31
|
exports.getUUIDFor16 = exports.UTILS['getUUIDFor16'];
|
|
32
|
+
exports.getApiDataXMLHttpRequest = exports.UTILS['getApiDataXMLHttpRequest'];
|
|
32
33
|
exports.isOpenInCemsProject = exports.UTILS['isOpenInCemsProject'];
|
|
33
34
|
// export assets components
|
|
34
35
|
exports.ChartBase = exports.COMPONENTS['ChartBase'];
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"vap1","version":"0.8.
|
|
1
|
+
{"name":"vap1","version":"0.8.3","description":"vap1, Both support MicroService and SAP FrameWork, Support IE>9","main":"index.js","author":"Xiang da","license":"ISC"}
|
package/utils/Ajax.d.ts
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import type { PlainObject } from '../basetype';
|
|
2
2
|
import type { Result } from './_AjaxUtil';
|
|
3
|
-
export { SESSION, SESSION_TIME, CLEAR, WAIT
|
|
3
|
+
export { SESSION, SESSION_TIME, CLEAR, WAIT } from './_AjaxUtil';
|
|
4
4
|
/**
|
|
5
5
|
* CATCH 方法可以捕获通用的错误并,省去 try/catch 语法
|
|
6
6
|
*/
|
|
7
7
|
export declare const CATCH: (fn: () => Promise<any>) => (() => Promise<void>);
|
|
8
|
+
/**
|
|
9
|
+
* 下载文件。
|
|
10
|
+
* url: 下载接口地址
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
export declare const DOWNLOAD: (url: string, postParam?: PlainObject) => void | Promise<void>;
|
|
14
|
+
export declare const getMicroHeader: (path?: string) => {
|
|
15
|
+
[x: string]: string;
|
|
16
|
+
};
|
|
8
17
|
/**
|
|
9
18
|
* Ajax 请求选项
|
|
10
19
|
*/
|
|
@@ -30,7 +39,7 @@ export type AjaxOptions = RequestInit & {
|
|
|
30
39
|
*
|
|
31
40
|
* 当满足不了需求时,可使用 `FETCH`,参考与标准 fetch 类似。
|
|
32
41
|
*/
|
|
33
|
-
export declare const FETCH: (url: string, options
|
|
42
|
+
export declare const FETCH: (url: string, options?: AjaxOptions) => Promise<Result>;
|
|
34
43
|
export declare const GET: (url: string, options?: AjaxOptions) => Promise<Result>;
|
|
35
44
|
export declare const POST: (url: string, param: PlainObject, options?: AjaxOptions) => Promise<Result>;
|
|
36
45
|
export declare const PATCH: (url: string, param: PlainObject, options?: AjaxOptions) => Promise<Result>;
|
package/utils/Ajax.js
CHANGED
|
@@ -62,21 +62,30 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
62
62
|
}
|
|
63
63
|
return ar;
|
|
64
64
|
};
|
|
65
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
66
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
67
|
+
if (ar || !(i in from)) {
|
|
68
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
69
|
+
ar[i] = from[i];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
73
|
+
};
|
|
65
74
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
66
75
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
67
76
|
};
|
|
68
77
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
69
|
-
exports.WHEN = exports.PUT = exports.DELETE = exports.PATCH = exports.POST = exports.GET = exports.FETCH = exports.
|
|
78
|
+
exports.WHEN = exports.PUT = exports.DELETE = exports.PATCH = exports.POST = exports.GET = exports.FETCH = exports.getMicroHeader = exports.DOWNLOAD = exports.CATCH = exports.WAIT = exports.CLEAR = exports.SESSION_TIME = exports.SESSION = void 0;
|
|
70
79
|
var lodash_1 = __importDefault(require("lodash"));
|
|
71
80
|
var Global_1 = require("./Global");
|
|
72
81
|
var _Support_1 = require("./_Support");
|
|
82
|
+
var PageUtil_1 = require("./PageUtil");
|
|
73
83
|
var _AjaxUtil_1 = require("./_AjaxUtil");
|
|
74
84
|
var _AjaxUtil_2 = require("./_AjaxUtil");
|
|
75
85
|
Object.defineProperty(exports, "SESSION", { enumerable: true, get: function () { return _AjaxUtil_2.SESSION; } });
|
|
76
86
|
Object.defineProperty(exports, "SESSION_TIME", { enumerable: true, get: function () { return _AjaxUtil_2.SESSION_TIME; } });
|
|
77
87
|
Object.defineProperty(exports, "CLEAR", { enumerable: true, get: function () { return _AjaxUtil_2.CLEAR; } });
|
|
78
88
|
Object.defineProperty(exports, "WAIT", { enumerable: true, get: function () { return _AjaxUtil_2.WAIT; } });
|
|
79
|
-
Object.defineProperty(exports, "getMicroHeader", { enumerable: true, get: function () { return _AjaxUtil_2.getMicroHeader; } });
|
|
80
89
|
var _a = (0, _Support_1.globalDefault)('NProgress', { start: function () { }, done: function () { } }), start = _a.start, done = _a.done;
|
|
81
90
|
/**
|
|
82
91
|
* CATCH 方法可以捕获通用的错误并,省去 try/catch 语法
|
|
@@ -100,51 +109,167 @@ var CATCH = function (fn) { return function () { return __awaiter(void 0, void 0
|
|
|
100
109
|
});
|
|
101
110
|
}); }; };
|
|
102
111
|
exports.CATCH = CATCH;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
+
var DOWNLOAD_FRAME_NAME = '_downloadFrame';
|
|
113
|
+
var isMicroApp = function () { return lodash_1.default.has(window, 'microApp'); };
|
|
114
|
+
var getDownloadFrame = function () {
|
|
115
|
+
var frame = document.getElementsByName(DOWNLOAD_FRAME_NAME)[0];
|
|
116
|
+
if (frame)
|
|
117
|
+
return frame;
|
|
118
|
+
frame = document.createElement('iframe');
|
|
119
|
+
frame.name = DOWNLOAD_FRAME_NAME;
|
|
120
|
+
frame.id = DOWNLOAD_FRAME_NAME;
|
|
121
|
+
frame.style.display = 'none';
|
|
122
|
+
document.body.appendChild(frame);
|
|
123
|
+
return frame;
|
|
124
|
+
};
|
|
125
|
+
var downloadByIframe = function (url, postParam) {
|
|
126
|
+
var downloadUrl = (0, PageUtil_1.resolveURL)(url);
|
|
127
|
+
getDownloadFrame();
|
|
128
|
+
if (postParam) {
|
|
129
|
+
var form_1 = document.createElement('form');
|
|
130
|
+
form_1.action = downloadUrl;
|
|
131
|
+
form_1.method = 'POST';
|
|
132
|
+
form_1.target = DOWNLOAD_FRAME_NAME;
|
|
133
|
+
form_1.style.display = 'none';
|
|
134
|
+
lodash_1.default.keys(postParam).forEach(function (key) {
|
|
135
|
+
var input = document.createElement('input');
|
|
136
|
+
input.type = 'hidden';
|
|
137
|
+
input.name = key;
|
|
138
|
+
input.value = postParam[key] == null ? '' : "".concat(postParam[key]);
|
|
139
|
+
form_1.appendChild(input);
|
|
140
|
+
});
|
|
141
|
+
document.body.appendChild(form_1);
|
|
142
|
+
form_1.submit();
|
|
143
|
+
window.setTimeout(function () { return document.body.removeChild(form_1); }, 200);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
document.getElementsByName(DOWNLOAD_FRAME_NAME)[0].src = downloadUrl;
|
|
147
|
+
};
|
|
148
|
+
var parseDownloadFileName = function (contentDisposition) {
|
|
149
|
+
if (!contentDisposition)
|
|
150
|
+
return '';
|
|
151
|
+
// _ck_session 映射 SESSION,
|
|
152
|
+
// _ck_vap_session 映射 VAP_SESSION
|
|
153
|
+
var utf8Match = contentDisposition.match(/filename\*\s*=\s*(?:UTF-8'')?([^;]+)/i);
|
|
154
|
+
if (utf8Match) {
|
|
155
|
+
try {
|
|
156
|
+
return decodeURIComponent(lodash_1.default.trim(utf8Match[1], '" '));
|
|
157
|
+
}
|
|
158
|
+
catch (_a) {
|
|
159
|
+
return lodash_1.default.trim(utf8Match[1], '" ');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
var filenameMatch = contentDisposition.match(/filename\s*=\s*("?)([^";]+)\1/i);
|
|
163
|
+
return filenameMatch ? lodash_1.default.trim(filenameMatch[2]) : '';
|
|
164
|
+
};
|
|
165
|
+
var saveBlob = function (blob, fileName) {
|
|
166
|
+
var nav = window.navigator;
|
|
167
|
+
if (lodash_1.default.isFunction(nav.msSaveOrOpenBlob)) {
|
|
168
|
+
nav.msSaveOrOpenBlob(blob, fileName || undefined);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
var a = document.createElement('a');
|
|
172
|
+
a.href = URL.createObjectURL(blob);
|
|
173
|
+
a.download = fileName || '';
|
|
174
|
+
a.style.display = 'none';
|
|
175
|
+
document.body.appendChild(a);
|
|
176
|
+
a.click();
|
|
177
|
+
document.body.removeChild(a);
|
|
178
|
+
window.setTimeout(function () { return URL.revokeObjectURL(a.href); }, 200);
|
|
179
|
+
};
|
|
180
|
+
var downloadByBlob = function (url, postParam) { return __awaiter(void 0, void 0, void 0, function () {
|
|
181
|
+
var method, _a, _url, _method, _headers, _data, downloadUrl, options, response, blob;
|
|
182
|
+
return __generator(this, function (_b) {
|
|
183
|
+
switch (_b.label) {
|
|
112
184
|
case 0:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
185
|
+
method = postParam ? 'POST' : 'GET';
|
|
186
|
+
_a = __read((0, _AjaxUtil_1.AOP_BEFORE)(url, method, {}, postParam || {}), 4), _url = _a[0], _method = _a[1], _headers = _a[2], _data = _a[3];
|
|
187
|
+
downloadUrl = (0, PageUtil_1.resolveURL)(_url);
|
|
188
|
+
options = { method: _method, headers: _headers };
|
|
189
|
+
if (_method != 'GET') {
|
|
190
|
+
options.body = JSON.stringify(_data);
|
|
118
191
|
}
|
|
119
|
-
|
|
120
|
-
return [4 /*yield*/, fetch(url, fetchOptions)];
|
|
192
|
+
return [4 /*yield*/, fetch(downloadUrl, options)];
|
|
121
193
|
case 1:
|
|
122
|
-
response =
|
|
194
|
+
response = _b.sent();
|
|
123
195
|
(0, _AjaxUtil_1.receiveMicorSessionByFetch)(response);
|
|
124
|
-
if (
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return [4 /*yield*/, Global_1.CONFIG.AJAX.beforeReceive(response, url, fetchOptions)];
|
|
196
|
+
if (!response.ok)
|
|
197
|
+
throw new Error("Download failed: ".concat(response.status));
|
|
198
|
+
return [4 /*yield*/, response.blob()];
|
|
128
199
|
case 2:
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
if (response.redirected && lodash_1.default.isString(response.url) && response.url.indexOf('login') >= 0) {
|
|
133
|
-
if (window.location.href.indexOf('login') < 0) {
|
|
134
|
-
window.location.href = response.url;
|
|
135
|
-
return [2 /*return*/, new Promise(function (r) { return r({ code: '9999', message: '请先登录' }); })];
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (!fetchOptions.text) return [3 /*break*/, 5];
|
|
139
|
-
return [4 /*yield*/, response.text()];
|
|
140
|
-
case 4: return [2 /*return*/, _a.sent()];
|
|
141
|
-
case 5: return [4 /*yield*/, response.json()];
|
|
142
|
-
case 6:
|
|
143
|
-
result = _a.sent();
|
|
144
|
-
return [2 /*return*/, result];
|
|
200
|
+
blob = _b.sent();
|
|
201
|
+
saveBlob(blob, parseDownloadFileName(response.headers.get('Content-Disposition')));
|
|
202
|
+
return [2 /*return*/];
|
|
145
203
|
}
|
|
146
204
|
});
|
|
147
205
|
}); };
|
|
206
|
+
/**
|
|
207
|
+
* 下载文件。
|
|
208
|
+
* url: 下载接口地址
|
|
209
|
+
*
|
|
210
|
+
*/
|
|
211
|
+
var DOWNLOAD = function (url, postParam) {
|
|
212
|
+
if (isMicroApp())
|
|
213
|
+
return downloadByBlob(url, postParam).catch(function () { return downloadByIframe(url, postParam); });
|
|
214
|
+
return downloadByIframe(url, postParam);
|
|
215
|
+
};
|
|
216
|
+
exports.DOWNLOAD = DOWNLOAD;
|
|
217
|
+
var getMicroHeader = function (path) {
|
|
218
|
+
return __assign({}, Global_1.CONFIG.AJAX.headers);
|
|
219
|
+
};
|
|
220
|
+
exports.getMicroHeader = getMicroHeader;
|
|
221
|
+
/**
|
|
222
|
+
* 建议使用 `GET` `POST` `PUT` `DELETE` `PATCH` 发送请求。
|
|
223
|
+
*
|
|
224
|
+
* 当满足不了需求时,可使用 `FETCH`,参考与标准 fetch 类似。
|
|
225
|
+
*/
|
|
226
|
+
var FETCH = function (url_1) {
|
|
227
|
+
var args_1 = [];
|
|
228
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
229
|
+
args_1[_i - 1] = arguments[_i];
|
|
230
|
+
}
|
|
231
|
+
return __awaiter(void 0, __spreadArray([url_1], __read(args_1), false), void 0, function (url, options) {
|
|
232
|
+
var fetchOptions, response, result_1, result;
|
|
233
|
+
if (options === void 0) { options = {}; }
|
|
234
|
+
return __generator(this, function (_a) {
|
|
235
|
+
switch (_a.label) {
|
|
236
|
+
case 0:
|
|
237
|
+
if (options.process !== false)
|
|
238
|
+
start();
|
|
239
|
+
fetchOptions = lodash_1.default.merge({ method: 'GET' }, options);
|
|
240
|
+
fetchOptions.headers = (0, _AjaxUtil_1.mergeHeaders)(Global_1.CONFIG.AJAX.headers, options.headers || {});
|
|
241
|
+
if (fetchOptions.body && lodash_1.default.isPlainObject(fetchOptions.body)) {
|
|
242
|
+
fetchOptions.body = JSON.stringify(fetchOptions.body);
|
|
243
|
+
}
|
|
244
|
+
return [4 /*yield*/, fetch(url, fetchOptions)];
|
|
245
|
+
case 1:
|
|
246
|
+
response = _a.sent();
|
|
247
|
+
(0, _AjaxUtil_1.receiveMicorSessionByFetch)(response);
|
|
248
|
+
if (options.process !== false)
|
|
249
|
+
done();
|
|
250
|
+
if (!lodash_1.default.isFunction(Global_1.CONFIG.AJAX.beforeReceive)) return [3 /*break*/, 3];
|
|
251
|
+
return [4 /*yield*/, Global_1.CONFIG.AJAX.beforeReceive(response, url, fetchOptions)];
|
|
252
|
+
case 2:
|
|
253
|
+
result_1 = _a.sent();
|
|
254
|
+
return [2 /*return*/, result_1];
|
|
255
|
+
case 3:
|
|
256
|
+
if (response.redirected && lodash_1.default.isString(response.url) && response.url.indexOf('login') >= 0) {
|
|
257
|
+
if (window.location.href.indexOf('login') < 0) {
|
|
258
|
+
window.location.href = response.url;
|
|
259
|
+
return [2 /*return*/, new Promise(function (r) { return r({ code: '9999', message: '请先登录' }); })];
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (!fetchOptions.text) return [3 /*break*/, 5];
|
|
263
|
+
return [4 /*yield*/, response.text()];
|
|
264
|
+
case 4: return [2 /*return*/, _a.sent()];
|
|
265
|
+
case 5: return [4 /*yield*/, response.json()];
|
|
266
|
+
case 6:
|
|
267
|
+
result = _a.sent();
|
|
268
|
+
return [2 /*return*/, result];
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
};
|
|
148
273
|
exports.FETCH = FETCH;
|
|
149
274
|
var _FETCH = function (method, url, param, options) {
|
|
150
275
|
var _a = __read((0, _AjaxUtil_1.AOP_BEFORE)(url, method, (options && options.headers) ? options.headers : {}, param), 4), _url = _a[0], _method = _a[1], _headers = _a[2], _data = _a[3];
|
package/utils/PageUtil.js
CHANGED
|
@@ -194,7 +194,14 @@ var hasRolePrefix = function (roleCode) {
|
|
|
194
194
|
return false;
|
|
195
195
|
};
|
|
196
196
|
exports.hasRolePrefix = hasRolePrefix;
|
|
197
|
-
|
|
197
|
+
// 部分产品使用虚拟前路径,目前支持 MICRO
|
|
198
|
+
var VIRTUAL_URL = window['__MICRO_APP_BASE_ROUTE__'];
|
|
199
|
+
var virtualLen = VIRTUAL_URL ? VIRTUAL_URL.length : 0;
|
|
200
|
+
var DEFAULT_RESOLVER = (virtualLen > 0) ? (function (url) {
|
|
201
|
+
if (!url.startsWith(VIRTUAL_URL))
|
|
202
|
+
return url;
|
|
203
|
+
return url.substring(virtualLen);
|
|
204
|
+
}) : function (url) { return url; };
|
|
198
205
|
var resolveApp = appLen == 0 ? DEFAULT_RESOLVER : function (url) {
|
|
199
206
|
if (!url.startsWith('/'))
|
|
200
207
|
return url;
|
|
@@ -234,7 +241,8 @@ exports.resolveURL = (appLen == 0 && apiLen == 0) ? DEFAULT_RESOLVER : function
|
|
|
234
241
|
* // 返回 '/users'
|
|
235
242
|
* clearURL('/app/users');
|
|
236
243
|
*/
|
|
237
|
-
exports.clearURL = appLen == 0 ? DEFAULT_RESOLVER : function (
|
|
244
|
+
exports.clearURL = appLen == 0 ? DEFAULT_RESOLVER : function (str) {
|
|
245
|
+
var url = DEFAULT_RESOLVER(str);
|
|
238
246
|
if (!url.startsWith(_Support_1.APP_ROOT))
|
|
239
247
|
return url;
|
|
240
248
|
return url.substring(appLen);
|
package/utils/XHR.js
CHANGED
|
@@ -33,7 +33,7 @@ var FETCH = function (method, url, param, headers) {
|
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
xhr.open(method, url, false);
|
|
36
|
-
(0, _AjaxUtil_1.setXHRHeaders)(xhr,
|
|
36
|
+
(0, _AjaxUtil_1.setXHRHeaders)(xhr, headers || {});
|
|
37
37
|
if (method == 'GET') {
|
|
38
38
|
xhr.send();
|
|
39
39
|
}
|
package/utils/_AjaxUtil.d.ts
CHANGED
|
@@ -19,10 +19,8 @@ export declare const SESSION_TIME: (url: string, second: number) => void;
|
|
|
19
19
|
export declare const SESSION: (...urls: string[]) => Set<string>[];
|
|
20
20
|
export declare const CLEAR: (...urls: string[]) => void[];
|
|
21
21
|
type HeaderRecord = Record<string, string>;
|
|
22
|
-
export declare const getMicroHeader: (path?: string) => HeaderRecord;
|
|
23
22
|
export declare const mergeHeaders: (...headersList: HeadersInit[]) => HeaderRecord;
|
|
24
23
|
export declare const setXHRHeaders: (xhr: XMLHttpRequest, headers: HeadersInit) => void;
|
|
25
|
-
export declare const appendMicorSessionHeaderForRequest: (url: string, headers: HeadersInit) => HeaderRecord;
|
|
26
24
|
export declare const receiveMicorSessionByFetch: (response: Response) => void;
|
|
27
25
|
export declare const receiveMicorSessionByXHR: (xhr: XMLHttpRequest) => void;
|
|
28
26
|
export interface Result {
|
package/utils/_AjaxUtil.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __values = (this && this.__values) || function(o) {
|
|
3
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
-
if (m) return m.call(o);
|
|
5
|
-
if (o && typeof o.length === "number") return {
|
|
6
|
-
next: function () {
|
|
7
|
-
if (o && i >= o.length) o = void 0;
|
|
8
|
-
return { value: o && o[i++], done: !o };
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
-
};
|
|
13
2
|
var __read = (this && this.__read) || function (o, n) {
|
|
14
3
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
4
|
if (!m) return o;
|
|
@@ -26,12 +15,23 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
26
15
|
}
|
|
27
16
|
return ar;
|
|
28
17
|
};
|
|
18
|
+
var __values = (this && this.__values) || function(o) {
|
|
19
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
20
|
+
if (m) return m.call(o);
|
|
21
|
+
if (o && typeof o.length === "number") return {
|
|
22
|
+
next: function () {
|
|
23
|
+
if (o && i >= o.length) o = void 0;
|
|
24
|
+
return { value: o && o[i++], done: !o };
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
28
|
+
};
|
|
29
29
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
30
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
31
|
};
|
|
32
32
|
var e_1, _a;
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.LOG_AJAX = exports.AOP_BEFORE = exports.setFixedHeader = exports.filterNull = exports.receiveMicorSessionByXHR = exports.receiveMicorSessionByFetch = exports.
|
|
34
|
+
exports.LOG_AJAX = exports.AOP_BEFORE = exports.setFixedHeader = exports.filterNull = exports.receiveMicorSessionByXHR = exports.receiveMicorSessionByFetch = exports.setXHRHeaders = exports.mergeHeaders = exports.CLEAR = exports.SESSION = exports.SESSION_TIME = exports.WAIT = exports.CACHE_TIMER = exports.CACHE_URL = void 0;
|
|
35
35
|
var lodash_1 = __importDefault(require("lodash"));
|
|
36
36
|
var _Support_1 = require("./_Support");
|
|
37
37
|
var Global_1 = require("./Global");
|
|
@@ -75,11 +75,11 @@ var CLEAR = function () {
|
|
|
75
75
|
exports.CLEAR = CLEAR;
|
|
76
76
|
var sessionStorage = window.sessionStorage;
|
|
77
77
|
var MICOR_SESSION_STORAGE = 'MICOR_SESSION';
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
var MICOR_SESSION_HEADERS = [
|
|
79
|
+
{ response: 'set-cems-cookies', request: 'cems-cookies' },
|
|
80
|
+
{ response: 'set-vap-cookies', request: 'vap-cookies' },
|
|
81
|
+
{ response: 'set-dlp-cookies', request: 'dlp-cookies' },
|
|
82
|
+
];
|
|
83
83
|
var readMicorSessionStore = function () {
|
|
84
84
|
var value = sessionStorage.getItem(MICOR_SESSION_STORAGE);
|
|
85
85
|
if (!value)
|
|
@@ -94,28 +94,7 @@ var readMicorSessionStore = function () {
|
|
|
94
94
|
var splitMicorSessionHeader = function (headerValue) {
|
|
95
95
|
return headerValue.split(/,(?=\s*[^;,=\s]+=)/g).map(function (value) { return lodash_1.default.trim(value); }).filter(Boolean);
|
|
96
96
|
};
|
|
97
|
-
var normalizePath = function (path) {
|
|
98
|
-
if (!path)
|
|
99
|
-
return '/';
|
|
100
|
-
return path.charAt(0) == '/' ? path : "/".concat(path);
|
|
101
|
-
};
|
|
102
|
-
var resolvePathname = function (url) {
|
|
103
|
-
var parser = document.createElement('a');
|
|
104
|
-
parser.href = url;
|
|
105
|
-
return normalizePath(parser.pathname || '/');
|
|
106
|
-
};
|
|
107
|
-
var isPathMatched = function (requestPath, cookiePath) {
|
|
108
|
-
var path = normalizePath(cookiePath);
|
|
109
|
-
if (path == '/')
|
|
110
|
-
return true;
|
|
111
|
-
if (requestPath == path)
|
|
112
|
-
return true;
|
|
113
|
-
if (lodash_1.default.endsWith(path, '/'))
|
|
114
|
-
return lodash_1.default.startsWith(requestPath, path);
|
|
115
|
-
return lodash_1.default.startsWith(requestPath, path) && requestPath.charAt(path.length) == '/';
|
|
116
|
-
};
|
|
117
97
|
var parseMicorSessionCookie = function (cookieValue) {
|
|
118
|
-
var e_2, _a;
|
|
119
98
|
var values = cookieValue.split(';').map(function (value) { return lodash_1.default.trim(value); }).filter(Boolean);
|
|
120
99
|
if (values.length == 0)
|
|
121
100
|
return null;
|
|
@@ -123,79 +102,63 @@ var parseMicorSessionCookie = function (cookieValue) {
|
|
|
123
102
|
var idx = cookiePair.indexOf('=');
|
|
124
103
|
if (idx <= 0)
|
|
125
104
|
return null;
|
|
126
|
-
var path = '/';
|
|
127
|
-
try {
|
|
128
|
-
for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {
|
|
129
|
-
var value = values_1_1.value;
|
|
130
|
-
var attrIdx = value.indexOf('=');
|
|
131
|
-
var attrName = lodash_1.default.toLower(attrIdx >= 0 ? value.substring(0, attrIdx) : value);
|
|
132
|
-
if (attrName == 'path') {
|
|
133
|
-
path = attrIdx >= 0 ? lodash_1.default.trim(value.substring(attrIdx + 1)) : '/';
|
|
134
|
-
break;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
139
|
-
finally {
|
|
140
|
-
try {
|
|
141
|
-
if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);
|
|
142
|
-
}
|
|
143
|
-
finally { if (e_2) throw e_2.error; }
|
|
144
|
-
}
|
|
145
105
|
return {
|
|
146
106
|
name: cookiePair.substring(0, idx),
|
|
147
|
-
path: normalizePath(path),
|
|
148
107
|
value: cookiePair.substring(idx + 1),
|
|
149
108
|
source: cookieValue,
|
|
150
109
|
};
|
|
151
110
|
};
|
|
152
|
-
var
|
|
153
|
-
|
|
154
|
-
|
|
111
|
+
var findHeaderKey = function (headers, headerName) {
|
|
112
|
+
var lowerName = lodash_1.default.toLower(headerName);
|
|
113
|
+
return lodash_1.default.find(lodash_1.default.keys(headers), function (key) { return lodash_1.default.toLower(key) == lowerName; });
|
|
114
|
+
};
|
|
115
|
+
var getMicorSessionHeaderValue = function (store, requestHeader) {
|
|
116
|
+
var session = store[requestHeader] || {};
|
|
117
|
+
return lodash_1.default.keys(session)
|
|
118
|
+
.map(function (name) { return "".concat(name, "=").concat(session[name].value); })
|
|
119
|
+
.join('; ');
|
|
120
|
+
};
|
|
121
|
+
var setMicorSessionGlobalHeaders = function (store) {
|
|
122
|
+
MICOR_SESSION_HEADERS.forEach(function (_a) {
|
|
123
|
+
var request = _a.request;
|
|
124
|
+
var value = getMicorSessionHeaderValue(store, request);
|
|
125
|
+
var headerKey = findHeaderKey(Global_1.CONFIG.AJAX.headers, request);
|
|
126
|
+
if (value) {
|
|
127
|
+
Global_1.CONFIG.AJAX.headers[headerKey || request] = value;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (headerKey)
|
|
131
|
+
delete Global_1.CONFIG.AJAX.headers[headerKey];
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
var receiveMicorSession = function (requestHeader, headerValue) {
|
|
155
135
|
if (!headerValue)
|
|
156
|
-
return;
|
|
136
|
+
return false;
|
|
157
137
|
var store = readMicorSessionStore();
|
|
138
|
+
if (!store[requestHeader])
|
|
139
|
+
store[requestHeader] = {};
|
|
140
|
+
var changed = false;
|
|
158
141
|
splitMicorSessionHeader(headerValue).forEach(function (value) {
|
|
159
142
|
var cookie = parseMicorSessionCookie(value);
|
|
160
143
|
if (cookie == null)
|
|
161
144
|
return;
|
|
162
|
-
|
|
163
|
-
store[cookie.path] = {};
|
|
164
|
-
store[cookie.path][cookie.name] = {
|
|
145
|
+
store[requestHeader][cookie.name] = {
|
|
165
146
|
value: cookie.value,
|
|
166
147
|
source: cookie.source,
|
|
167
148
|
};
|
|
149
|
+
changed = true;
|
|
168
150
|
});
|
|
151
|
+
if (!changed)
|
|
152
|
+
return false;
|
|
169
153
|
sessionStorage.setItem(MICOR_SESSION_STORAGE, JSON.stringify(store));
|
|
154
|
+
setMicorSessionGlobalHeaders(store);
|
|
155
|
+
return true;
|
|
170
156
|
};
|
|
171
|
-
var
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if (lodash_1.default.keys(store).length == 0)
|
|
177
|
-
return '';
|
|
178
|
-
var matchedPath = lodash_1.default.keys(store)
|
|
179
|
-
.filter(function (path) { return isPathMatched(requestPath, path); })
|
|
180
|
-
.sort(function (a, b) { return b.length - a.length; })[0];
|
|
181
|
-
if (!matchedPath)
|
|
182
|
-
return '';
|
|
183
|
-
return lodash_1.default.keys(store[matchedPath])
|
|
184
|
-
.map(function (name) { return "".concat(name, "=").concat(store[matchedPath][name].value); })
|
|
185
|
-
.join('; ');
|
|
186
|
-
};
|
|
187
|
-
var getMicroHeader = function (path) {
|
|
188
|
-
var _a;
|
|
189
|
-
if (path === void 0) { path = window.location.pathname; }
|
|
190
|
-
var session = getMatchedMicorSession(path);
|
|
191
|
-
if (!session)
|
|
192
|
-
return {};
|
|
193
|
-
return _a = {}, _a[MICOR_SESSION_REQUEST_HEADER] = session, _a;
|
|
194
|
-
};
|
|
195
|
-
exports.getMicroHeader = getMicroHeader;
|
|
196
|
-
var findHeaderKey = function (headers, headerName) {
|
|
197
|
-
var lowerName = lodash_1.default.toLower(headerName);
|
|
198
|
-
return lodash_1.default.find(lodash_1.default.keys(headers), function (key) { return lodash_1.default.toLower(key) == lowerName; });
|
|
157
|
+
var receiveMicorSessionHeaders = function (getHeader) {
|
|
158
|
+
MICOR_SESSION_HEADERS.forEach(function (_a) {
|
|
159
|
+
var response = _a.response, request = _a.request;
|
|
160
|
+
receiveMicorSession(request, getHeader(response));
|
|
161
|
+
});
|
|
199
162
|
};
|
|
200
163
|
var mergeHeaders = function () {
|
|
201
164
|
var headersList = [];
|
|
@@ -227,64 +190,15 @@ var mergeHeaders = function () {
|
|
|
227
190
|
return result;
|
|
228
191
|
};
|
|
229
192
|
exports.mergeHeaders = mergeHeaders;
|
|
230
|
-
var appendCookieHeader = function (current, value) {
|
|
231
|
-
if (!current)
|
|
232
|
-
return value;
|
|
233
|
-
var exists = new Set();
|
|
234
|
-
current.split(';').map(function (item) { return lodash_1.default.trim(item); }).filter(Boolean).forEach(function (item) {
|
|
235
|
-
exists.add(lodash_1.default.toLower(item.split('=')[0]));
|
|
236
|
-
});
|
|
237
|
-
var additions = value.split(';').map(function (item) { return lodash_1.default.trim(item); }).filter(Boolean).filter(function (item) {
|
|
238
|
-
return !exists.has(lodash_1.default.toLower(item.split('=')[0]));
|
|
239
|
-
});
|
|
240
|
-
if (additions.length == 0)
|
|
241
|
-
return current;
|
|
242
|
-
return "".concat(current, "; ").concat(additions.join('; '));
|
|
243
|
-
};
|
|
244
|
-
var appendMicorSessionHeader = function (url, headers) {
|
|
245
|
-
var result = (0, exports.mergeHeaders)(headers);
|
|
246
|
-
var session = getMatchedMicorSession(url);
|
|
247
|
-
if (!session)
|
|
248
|
-
return result;
|
|
249
|
-
var headerKey = findHeaderKey(result, MICOR_SESSION_REQUEST_HEADER) || MICOR_SESSION_REQUEST_HEADER;
|
|
250
|
-
var oldHeaderValue = result[headerKey];
|
|
251
|
-
result[headerKey] = appendCookieHeader(oldHeaderValue, session);
|
|
252
|
-
return result;
|
|
253
|
-
};
|
|
254
193
|
var setXHRHeaders = function (xhr, headers) {
|
|
255
194
|
var requestHeaders = (0, exports.mergeHeaders)(headers);
|
|
256
195
|
lodash_1.default.keys(requestHeaders).forEach(function (key) { return xhr.setRequestHeader(key, requestHeaders[key]); });
|
|
257
196
|
};
|
|
258
197
|
exports.setXHRHeaders = setXHRHeaders;
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
sessionStorage.removeItem(MICOR_SESSION_STORAGE);
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
var store = readMicorSessionStore();
|
|
265
|
-
delete store[normalizePath(path)];
|
|
266
|
-
sessionStorage.setItem(MICOR_SESSION_STORAGE, JSON.stringify(store));
|
|
267
|
-
};
|
|
268
|
-
var MICOR_SESSION = {
|
|
269
|
-
requestHeader: MICOR_SESSION_REQUEST_HEADER,
|
|
270
|
-
responseHeader: MICOR_SESSION_RESPONSE_HEADER,
|
|
271
|
-
receive: receiveMicorSession,
|
|
272
|
-
receiveByFetch: function (response) { return receiveMicorSession(response.headers.get(MICOR_SESSION_RESPONSE_HEADER)); },
|
|
273
|
-
receiveByXHR: function (xhr) { return receiveMicorSession(xhr.getResponseHeader(MICOR_SESSION_RESPONSE_HEADER)); },
|
|
274
|
-
appendHeader: appendMicorSessionHeader,
|
|
275
|
-
get: function (path) {
|
|
276
|
-
var store = readMicorSessionStore();
|
|
277
|
-
if (lodash_1.default.isString(path))
|
|
278
|
-
return store[normalizePath(path)] || {};
|
|
279
|
-
return store;
|
|
280
|
-
},
|
|
281
|
-
clear: clearMicorSession,
|
|
282
|
-
};
|
|
283
|
-
var appendMicorSessionHeaderForRequest = function (url, headers) { return MICOR_SESSION.appendHeader(url, headers); };
|
|
284
|
-
exports.appendMicorSessionHeaderForRequest = appendMicorSessionHeaderForRequest;
|
|
285
|
-
var receiveMicorSessionByFetch = function (response) { return MICOR_SESSION.receiveByFetch(response); };
|
|
198
|
+
setMicorSessionGlobalHeaders(readMicorSessionStore());
|
|
199
|
+
var receiveMicorSessionByFetch = function (response) { return receiveMicorSessionHeaders(function (header) { return response.headers.get(header); }); };
|
|
286
200
|
exports.receiveMicorSessionByFetch = receiveMicorSessionByFetch;
|
|
287
|
-
var receiveMicorSessionByXHR = function (xhr) { return
|
|
201
|
+
var receiveMicorSessionByXHR = function (xhr) { return receiveMicorSessionHeaders(function (header) { return xhr.getResponseHeader(header); }); };
|
|
288
202
|
exports.receiveMicorSessionByXHR = receiveMicorSessionByXHR;
|
|
289
203
|
//过滤空参数
|
|
290
204
|
var filterNull = function (param) {
|
|
@@ -304,7 +218,10 @@ exports.filterNull = filterNull;
|
|
|
304
218
|
/**
|
|
305
219
|
* 将链接带入 ApiRoot
|
|
306
220
|
*/
|
|
221
|
+
var isAbsoluteURL = function (url) { return /^[a-z][a-z0-9+.-]*:/i.test(url) || lodash_1.default.startsWith(url, '//'); };
|
|
307
222
|
var rewriteApiRoot = (window.API_ROOT == null || window.API_ROOT == '') ? function (url) { return url; } : function (url) {
|
|
223
|
+
if (isAbsoluteURL(url))
|
|
224
|
+
return url;
|
|
308
225
|
if (lodash_1.default.startsWith(url, window.API_ROOT))
|
|
309
226
|
return url;
|
|
310
227
|
return "".concat(window.API_ROOT).concat(url);
|
|
@@ -335,7 +252,7 @@ if (FIXED_STORAGE) {
|
|
|
335
252
|
}
|
|
336
253
|
}
|
|
337
254
|
var setFixedHeader = function (header) {
|
|
338
|
-
var
|
|
255
|
+
var e_2, _a;
|
|
339
256
|
var keys = lodash_1.default.keys(header);
|
|
340
257
|
try {
|
|
341
258
|
for (var keys_2 = __values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) {
|
|
@@ -343,12 +260,12 @@ var setFixedHeader = function (header) {
|
|
|
343
260
|
FIXED_HEADER[key] = header[key];
|
|
344
261
|
}
|
|
345
262
|
}
|
|
346
|
-
catch (
|
|
263
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
347
264
|
finally {
|
|
348
265
|
try {
|
|
349
266
|
if (keys_2_1 && !keys_2_1.done && (_a = keys_2.return)) _a.call(keys_2);
|
|
350
267
|
}
|
|
351
|
-
finally { if (
|
|
268
|
+
finally { if (e_2) throw e_2.error; }
|
|
352
269
|
}
|
|
353
270
|
sessionStorage.setItem(FIXED_HEADER_STROE, JSON.stringify(FIXED_HEADER));
|
|
354
271
|
};
|
|
@@ -356,7 +273,7 @@ exports.setFixedHeader = setFixedHeader;
|
|
|
356
273
|
exports.AOP_BEFORE = (0, _Support_1.globalDefault)('_VAP_BEFORE_SEND', function (url, method, headers, query) {
|
|
357
274
|
var data = method == 'POST' ? (0, exports.filterNull)(query) : query;
|
|
358
275
|
var resloveApiRoot = rewriteApiRoot(url);
|
|
359
|
-
var requestHeaders =
|
|
276
|
+
var requestHeaders = (0, exports.mergeHeaders)(Global_1.CONFIG.AJAX.headers, FIXED_HEADER, headers);
|
|
360
277
|
if (lodash_1.default.isFunction(Global_1.CONFIG.AJAX.beforeSend)) {
|
|
361
278
|
return Global_1.CONFIG.AJAX.beforeSend(resloveApiRoot, method, requestHeaders, data);
|
|
362
279
|
}
|