@cuipengyu5/bling-renderer-core 0.0.1
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/es/adapter/index.d.ts +24 -0
- package/es/adapter/index.js +95 -0
- package/es/components/Div.d.ts +2 -0
- package/es/components/Div.js +19 -0
- package/es/components/VisualDom/index.css +19 -0
- package/es/components/VisualDom/index.d.ts +3 -0
- package/es/components/VisualDom/index.js +44 -0
- package/es/context/index.d.ts +1 -0
- package/es/context/index.js +11 -0
- package/es/hoc/index.d.ts +7 -0
- package/es/hoc/index.js +90 -0
- package/es/hoc/leaf.d.ts +32 -0
- package/es/hoc/leaf.js +521 -0
- package/es/index.d.ts +7 -0
- package/es/index.js +9 -0
- package/es/renderer/addon.d.ts +2 -0
- package/es/renderer/addon.js +107 -0
- package/es/renderer/base.d.ts +13 -0
- package/es/renderer/base.js +1120 -0
- package/es/renderer/block.d.ts +2 -0
- package/es/renderer/block.js +43 -0
- package/es/renderer/component.d.ts +2 -0
- package/es/renderer/component.js +59 -0
- package/es/renderer/index.d.ts +8 -0
- package/es/renderer/index.js +8 -0
- package/es/renderer/page.d.ts +2 -0
- package/es/renderer/page.js +91 -0
- package/es/renderer/renderer.d.ts +2 -0
- package/es/renderer/renderer.js +230 -0
- package/es/renderer/temp.d.ts +2 -0
- package/es/renderer/temp.js +139 -0
- package/es/style.js +1 -0
- package/es/types/index.d.ts +275 -0
- package/es/types/index.js +1 -0
- package/es/utils/common.d.ts +119 -0
- package/es/utils/common.js +378 -0
- package/es/utils/data-helper.d.ts +74 -0
- package/es/utils/data-helper.js +300 -0
- package/es/utils/index.d.ts +3 -0
- package/es/utils/index.js +3 -0
- package/es/utils/is-use-loop.d.ts +2 -0
- package/es/utils/is-use-loop.js +16 -0
- package/es/utils/logger.d.ts +3 -0
- package/es/utils/logger.js +5 -0
- package/es/utils/request.d.ts +54 -0
- package/es/utils/request.js +209 -0
- package/lib/adapter/index.d.ts +24 -0
- package/lib/adapter/index.js +99 -0
- package/lib/components/Div.d.ts +2 -0
- package/lib/components/Div.js +24 -0
- package/lib/components/VisualDom/index.css +19 -0
- package/lib/components/VisualDom/index.d.ts +3 -0
- package/lib/components/VisualDom/index.js +49 -0
- package/lib/context/index.d.ts +1 -0
- package/lib/context/index.js +16 -0
- package/lib/hoc/index.d.ts +7 -0
- package/lib/hoc/index.js +95 -0
- package/lib/hoc/leaf.d.ts +32 -0
- package/lib/hoc/leaf.js +526 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +34 -0
- package/lib/renderer/addon.d.ts +2 -0
- package/lib/renderer/addon.js +112 -0
- package/lib/renderer/base.d.ts +13 -0
- package/lib/renderer/base.js +1126 -0
- package/lib/renderer/block.d.ts +2 -0
- package/lib/renderer/block.js +48 -0
- package/lib/renderer/component.d.ts +2 -0
- package/lib/renderer/component.js +64 -0
- package/lib/renderer/index.d.ts +8 -0
- package/lib/renderer/index.js +18 -0
- package/lib/renderer/page.d.ts +2 -0
- package/lib/renderer/page.js +96 -0
- package/lib/renderer/renderer.d.ts +2 -0
- package/lib/renderer/renderer.js +235 -0
- package/lib/renderer/temp.d.ts +2 -0
- package/lib/renderer/temp.js +144 -0
- package/lib/style.js +1 -0
- package/lib/types/index.d.ts +275 -0
- package/lib/types/index.js +3 -0
- package/lib/utils/common.d.ts +119 -0
- package/lib/utils/common.js +409 -0
- package/lib/utils/data-helper.d.ts +74 -0
- package/lib/utils/data-helper.js +306 -0
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.js +21 -0
- package/lib/utils/is-use-loop.d.ts +2 -0
- package/lib/utils/is-use-loop.js +19 -0
- package/lib/utils/logger.d.ts +3 -0
- package/lib/utils/logger.js +9 -0
- package/lib/utils/request.d.ts +54 -0
- package/lib/utils/request.js +217 -0
- package/package.json +64 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.DataHelper = void 0;
|
|
6
|
+
exports.doRequest = doRequest;
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
+
var _lowcodeUtils = require("@alilc/lowcode-utils");
|
|
10
|
+
var _common = require("./common");
|
|
11
|
+
var _request = require("./request");
|
|
12
|
+
var _logger = _interopRequireDefault(require("./logger"));
|
|
13
|
+
var _excluded = ["uri", "url", "method", "headers", "params"],
|
|
14
|
+
_excluded2 = ["headers"];
|
|
15
|
+
/* eslint-disable no-console */
|
|
16
|
+
/* eslint-disable max-len */
|
|
17
|
+
/* eslint-disable object-curly-newline */
|
|
18
|
+
var DS_STATUS = {
|
|
19
|
+
INIT: 'init',
|
|
20
|
+
LOADING: 'loading',
|
|
21
|
+
LOADED: 'loaded',
|
|
22
|
+
ERROR: 'error'
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* do request for standard DataSourceType
|
|
26
|
+
* @param {DataSourceType} type type of DataSourceItem
|
|
27
|
+
* @param {any} options
|
|
28
|
+
*/
|
|
29
|
+
function doRequest(type, options) {
|
|
30
|
+
// eslint-disable-next-line prefer-const
|
|
31
|
+
var uri = options.uri,
|
|
32
|
+
url = options.url,
|
|
33
|
+
_options$method = options.method,
|
|
34
|
+
method = _options$method === void 0 ? 'GET' : _options$method,
|
|
35
|
+
headers = options.headers,
|
|
36
|
+
params = options.params,
|
|
37
|
+
otherProps = (0, _objectWithoutPropertiesLoose2["default"])(options, _excluded);
|
|
38
|
+
otherProps = otherProps || {};
|
|
39
|
+
if (type === 'jsonp') {
|
|
40
|
+
return (0, _request.jsonp)(uri, params, otherProps);
|
|
41
|
+
}
|
|
42
|
+
if (type === 'fetch') {
|
|
43
|
+
switch (method.toUpperCase()) {
|
|
44
|
+
case 'GET':
|
|
45
|
+
return (0, _request.get)(uri, params, headers, otherProps);
|
|
46
|
+
case 'POST':
|
|
47
|
+
return (0, _request.post)(uri, params, headers, otherProps);
|
|
48
|
+
default:
|
|
49
|
+
return (0, _request.request)(uri, method, params, headers, otherProps);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
_logger["default"].log("Engine default dataSource does not support type:[" + type + "] dataSource request!", options);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// TODO: according to protocol, we should implement errorHandler/shouldFetch/willFetch/requestHandler and isSync controll.
|
|
56
|
+
var DataHelper = exports.DataHelper = /*#__PURE__*/function () {
|
|
57
|
+
function DataHelper(comp, config, appHelper, parser) {
|
|
58
|
+
/**
|
|
59
|
+
* host object that will be "this" object when excuting dataHandler
|
|
60
|
+
*
|
|
61
|
+
* @type {*}
|
|
62
|
+
* @memberof DataHelper
|
|
63
|
+
*/
|
|
64
|
+
this.host = void 0;
|
|
65
|
+
/**
|
|
66
|
+
* data source config
|
|
67
|
+
*
|
|
68
|
+
* @type {DataSource}
|
|
69
|
+
* @memberof DataHelper
|
|
70
|
+
*/
|
|
71
|
+
this.config = void 0;
|
|
72
|
+
/**
|
|
73
|
+
* a parser function which will be called to process config data
|
|
74
|
+
* which eventually will call common/utils.processData() to process data
|
|
75
|
+
* (originalConfig) => parsedConfig
|
|
76
|
+
* @type {*}
|
|
77
|
+
* @memberof DataHelper
|
|
78
|
+
*/
|
|
79
|
+
this.parser = void 0;
|
|
80
|
+
/**
|
|
81
|
+
* config.list
|
|
82
|
+
*
|
|
83
|
+
* @type {any[]}
|
|
84
|
+
* @memberof DataHelper
|
|
85
|
+
*/
|
|
86
|
+
this.ajaxList = void 0;
|
|
87
|
+
this.ajaxMap = void 0;
|
|
88
|
+
this.dataSourceMap = void 0;
|
|
89
|
+
this.appHelper = void 0;
|
|
90
|
+
this.host = comp;
|
|
91
|
+
this.config = config || {};
|
|
92
|
+
this.parser = parser;
|
|
93
|
+
this.ajaxList = (config === null || config === void 0 ? void 0 : config.list) || [];
|
|
94
|
+
this.ajaxMap = (0, _common.transformArrayToMap)(this.ajaxList, 'id');
|
|
95
|
+
this.dataSourceMap = this.generateDataSourceMap();
|
|
96
|
+
this.appHelper = appHelper;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// 更新config,只会更新配置,状态保存;
|
|
100
|
+
var _proto = DataHelper.prototype;
|
|
101
|
+
_proto.updateConfig = function updateConfig(config) {
|
|
102
|
+
var _config,
|
|
103
|
+
_this = this;
|
|
104
|
+
if (config === void 0) {
|
|
105
|
+
config = {};
|
|
106
|
+
}
|
|
107
|
+
this.config = config;
|
|
108
|
+
this.ajaxList = ((_config = config) === null || _config === void 0 ? void 0 : _config.list) || [];
|
|
109
|
+
var ajaxMap = (0, _common.transformArrayToMap)(this.ajaxList, 'id');
|
|
110
|
+
// 删除已经移除的接口
|
|
111
|
+
Object.keys(this.ajaxMap).forEach(function (key) {
|
|
112
|
+
if (!ajaxMap[key]) {
|
|
113
|
+
delete _this.dataSourceMap[key];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
this.ajaxMap = ajaxMap;
|
|
117
|
+
// 添加未加入到dataSourceMap中的接口
|
|
118
|
+
this.ajaxList.forEach(function (item) {
|
|
119
|
+
if (!_this.dataSourceMap[item.id]) {
|
|
120
|
+
_this.dataSourceMap[item.id] = {
|
|
121
|
+
status: DS_STATUS.INIT,
|
|
122
|
+
load: function load() {
|
|
123
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
124
|
+
args[_key] = arguments[_key];
|
|
125
|
+
}
|
|
126
|
+
// @ts-ignore
|
|
127
|
+
return _this.getDataSource.apply(_this, [item.id].concat(args));
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
return this.dataSourceMap;
|
|
133
|
+
};
|
|
134
|
+
_proto.generateDataSourceMap = function generateDataSourceMap() {
|
|
135
|
+
var _this2 = this;
|
|
136
|
+
var res = {};
|
|
137
|
+
this.ajaxList.forEach(function (item) {
|
|
138
|
+
res[item.id] = {
|
|
139
|
+
status: DS_STATUS.INIT,
|
|
140
|
+
load: function load() {
|
|
141
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
142
|
+
args[_key2] = arguments[_key2];
|
|
143
|
+
}
|
|
144
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
145
|
+
// @ts-ignore
|
|
146
|
+
return _this2.getDataSource.apply(_this2, [item.id].concat(args));
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
});
|
|
150
|
+
return res;
|
|
151
|
+
};
|
|
152
|
+
_proto.updateDataSourceMap = function updateDataSourceMap(id, data, error) {
|
|
153
|
+
this.dataSourceMap[id].error = error || undefined;
|
|
154
|
+
this.dataSourceMap[id].data = data;
|
|
155
|
+
this.dataSourceMap[id].status = error ? DS_STATUS.ERROR : DS_STATUS.LOADED;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* get all dataSourceItems which marked as isInit === true
|
|
160
|
+
* @private
|
|
161
|
+
* @returns
|
|
162
|
+
* @memberof DataHelper
|
|
163
|
+
*/;
|
|
164
|
+
_proto.getInitDataSourseConfigs = function getInitDataSourseConfigs() {
|
|
165
|
+
var _this3 = this;
|
|
166
|
+
var initConfigs = this.parser(this.ajaxList).filter(function (item) {
|
|
167
|
+
// according to [spec](https://lowcode-engine.cn/lowcode), isInit should be boolean true to be working
|
|
168
|
+
if (item.isInit === true) {
|
|
169
|
+
_this3.dataSourceMap[item.id].status = DS_STATUS.LOADING;
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
return false;
|
|
173
|
+
});
|
|
174
|
+
return initConfigs;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* process all dataSourceItems which marked as isInit === true, and get dataSource request results.
|
|
179
|
+
* @public
|
|
180
|
+
* @returns
|
|
181
|
+
* @memberof DataHelper
|
|
182
|
+
*/;
|
|
183
|
+
_proto.getInitData = function getInitData() {
|
|
184
|
+
var _this4 = this;
|
|
185
|
+
var initSyncData = this.getInitDataSourseConfigs();
|
|
186
|
+
// 所有 datasource 的 datahandler
|
|
187
|
+
return this.asyncDataHandler(initSyncData).then(function (res) {
|
|
188
|
+
var dataHandler = _this4.config.dataHandler;
|
|
189
|
+
return _this4.handleData(null, dataHandler, res, null);
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
_proto.getDataSource = function getDataSource(id, params, otherOptions, callback) {
|
|
193
|
+
var req = this.parser(this.ajaxMap[id]);
|
|
194
|
+
var options = req.options || {};
|
|
195
|
+
var callbackFn = callback;
|
|
196
|
+
var otherOptionsObj = otherOptions;
|
|
197
|
+
if (typeof otherOptions === 'function') {
|
|
198
|
+
callbackFn = otherOptions;
|
|
199
|
+
otherOptionsObj = {};
|
|
200
|
+
}
|
|
201
|
+
var _ref = otherOptionsObj || {},
|
|
202
|
+
headers = _ref.headers,
|
|
203
|
+
otherProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded2);
|
|
204
|
+
if (!req) {
|
|
205
|
+
_logger["default"].warn("getDataSource API named " + id + " not exist");
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
return this.asyncDataHandler([(0, _extends2["default"])({}, req, {
|
|
209
|
+
options: (0, _extends2["default"])({}, options, {
|
|
210
|
+
// 支持参数为array的情况,当参数为array时,不做参数合并
|
|
211
|
+
params: Array.isArray(options.params) || Array.isArray(params) ? params || options.params : (0, _extends2["default"])({}, options.params, params),
|
|
212
|
+
headers: (0, _extends2["default"])({}, options.headers, headers)
|
|
213
|
+
}, otherProps)
|
|
214
|
+
})]).then(function (res) {
|
|
215
|
+
try {
|
|
216
|
+
callbackFn && callbackFn(res && res[id]);
|
|
217
|
+
} catch (e) {
|
|
218
|
+
_logger["default"].error('load请求回调函数报错', e);
|
|
219
|
+
}
|
|
220
|
+
return res && res[id];
|
|
221
|
+
})["catch"](function (err) {
|
|
222
|
+
try {
|
|
223
|
+
callbackFn && callbackFn(null, err);
|
|
224
|
+
} catch (e) {
|
|
225
|
+
_logger["default"].error('load请求回调函数报错', e);
|
|
226
|
+
}
|
|
227
|
+
return err;
|
|
228
|
+
});
|
|
229
|
+
};
|
|
230
|
+
_proto.asyncDataHandler = function asyncDataHandler(asyncDataList) {
|
|
231
|
+
var _this5 = this;
|
|
232
|
+
return new Promise(function (resolve, reject) {
|
|
233
|
+
var allReq = [];
|
|
234
|
+
asyncDataList.forEach(function (req) {
|
|
235
|
+
var id = req.id,
|
|
236
|
+
type = req.type;
|
|
237
|
+
// TODO: need refactoring to remove 'legao' related logic
|
|
238
|
+
if (!id || !type || type === 'legao') {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
allReq.push(req);
|
|
242
|
+
});
|
|
243
|
+
if (allReq.length === 0) {
|
|
244
|
+
resolve({});
|
|
245
|
+
}
|
|
246
|
+
var res = {};
|
|
247
|
+
Promise.all(allReq.map(function (item) {
|
|
248
|
+
return new Promise(function (innerResolve) {
|
|
249
|
+
var type = item.type,
|
|
250
|
+
id = item.id,
|
|
251
|
+
dataHandler = item.dataHandler,
|
|
252
|
+
options = item.options;
|
|
253
|
+
var fetchHandler = function fetchHandler(data, error) {
|
|
254
|
+
res[id] = _this5.handleData(id, dataHandler, data, error);
|
|
255
|
+
_this5.updateDataSourceMap(id, res[id], error);
|
|
256
|
+
innerResolve({});
|
|
257
|
+
};
|
|
258
|
+
var doFetch = function doFetch(innerType, innerOptions) {
|
|
259
|
+
var _doRequest;
|
|
260
|
+
(_doRequest = doRequest(innerType, innerOptions)) === null || _doRequest === void 0 ? void 0 : _doRequest.then(function (data) {
|
|
261
|
+
fetchHandler(data, undefined);
|
|
262
|
+
})["catch"](function (err) {
|
|
263
|
+
fetchHandler(undefined, err);
|
|
264
|
+
});
|
|
265
|
+
};
|
|
266
|
+
_this5.dataSourceMap[id].status = DS_STATUS.LOADING;
|
|
267
|
+
doFetch(type, options);
|
|
268
|
+
});
|
|
269
|
+
})).then(function () {
|
|
270
|
+
resolve(res);
|
|
271
|
+
})["catch"](function (e) {
|
|
272
|
+
reject(e);
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* process data using dataHandler
|
|
279
|
+
*
|
|
280
|
+
* @param {(string | null)} id request id, will be used in error message, can be null
|
|
281
|
+
* @param {*} dataHandler
|
|
282
|
+
* @param {*} data
|
|
283
|
+
* @param {*} error
|
|
284
|
+
* @returns
|
|
285
|
+
* @memberof DataHelper
|
|
286
|
+
*/;
|
|
287
|
+
_proto.handleData = function handleData(id, dataHandler, data, error) {
|
|
288
|
+
var dataHandlerFun = dataHandler;
|
|
289
|
+
if ((0, _lowcodeUtils.isJSFunction)(dataHandler)) {
|
|
290
|
+
dataHandlerFun = (0, _common.transformStringToFunction)(dataHandler.value);
|
|
291
|
+
}
|
|
292
|
+
if (!dataHandlerFun || typeof dataHandlerFun !== 'function') {
|
|
293
|
+
return data;
|
|
294
|
+
}
|
|
295
|
+
try {
|
|
296
|
+
return dataHandlerFun.call(this.host, data, error);
|
|
297
|
+
} catch (e) {
|
|
298
|
+
if (id) {
|
|
299
|
+
_logger["default"].error("[" + id + "]\u5355\u4E2A\u8BF7\u6C42\u6570\u636E\u5904\u7406\u51FD\u6570\u8FD0\u884C\u51FA\u9519", e);
|
|
300
|
+
} else {
|
|
301
|
+
_logger["default"].error('请求数据处理函数运行出错', e);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
return DataHelper;
|
|
306
|
+
}();
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
var _common = require("./common");
|
|
5
|
+
Object.keys(_common).forEach(function (key) {
|
|
6
|
+
if (key === "default" || key === "__esModule") return;
|
|
7
|
+
if (key in exports && exports[key] === _common[key]) return;
|
|
8
|
+
exports[key] = _common[key];
|
|
9
|
+
});
|
|
10
|
+
var _dataHelper = require("./data-helper");
|
|
11
|
+
Object.keys(_dataHelper).forEach(function (key) {
|
|
12
|
+
if (key === "default" || key === "__esModule") return;
|
|
13
|
+
if (key in exports && exports[key] === _dataHelper[key]) return;
|
|
14
|
+
exports[key] = _dataHelper[key];
|
|
15
|
+
});
|
|
16
|
+
var _request = require("./request");
|
|
17
|
+
Object.keys(_request).forEach(function (key) {
|
|
18
|
+
if (key === "default" || key === "__esModule") return;
|
|
19
|
+
if (key in exports && exports[key] === _request[key]) return;
|
|
20
|
+
exports[key] = _request[key];
|
|
21
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports["default"] = isUseLoop;
|
|
5
|
+
var _lowcodeUtils = require("@alilc/lowcode-utils");
|
|
6
|
+
// 1.渲染模式下,loop 是数组,则按照数组长度渲染组件
|
|
7
|
+
// 2.设计模式下,loop 需要长度大于 0,按照循环模式渲染,防止无法设计的情况
|
|
8
|
+
function isUseLoop(loop, isDesignMode) {
|
|
9
|
+
if ((0, _lowcodeUtils.isJSExpression)(loop)) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (!isDesignMode) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
if (!Array.isArray(loop)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return loop.length > 0;
|
|
19
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import 'whatwg-fetch';
|
|
2
|
+
/**
|
|
3
|
+
* this is a private method, export for testing purposes only.
|
|
4
|
+
*
|
|
5
|
+
* @export
|
|
6
|
+
* @param {*} dataAPI
|
|
7
|
+
* @param {*} params
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export declare function buildUrl(dataAPI: any, params: any): any;
|
|
11
|
+
/**
|
|
12
|
+
* do Get request
|
|
13
|
+
*
|
|
14
|
+
* @export
|
|
15
|
+
* @param {*} dataAPI
|
|
16
|
+
* @param {*} [params={}]
|
|
17
|
+
* @param {*} [headers={}]
|
|
18
|
+
* @param {*} [otherProps={}]
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export declare function get(dataAPI: any, params?: {}, headers?: {}, otherProps?: {}): Promise<unknown>;
|
|
22
|
+
/**
|
|
23
|
+
* do Post request
|
|
24
|
+
*
|
|
25
|
+
* @export
|
|
26
|
+
* @param {*} dataAPI
|
|
27
|
+
* @param {*} [params={}]
|
|
28
|
+
* @param {*} [headers={}]
|
|
29
|
+
* @param {*} [otherProps={}]
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
export declare function post(dataAPI: any, params?: {}, headers?: any, otherProps?: {}): Promise<unknown>;
|
|
33
|
+
/**
|
|
34
|
+
* do request
|
|
35
|
+
*
|
|
36
|
+
* @export
|
|
37
|
+
* @param {*} dataAPI
|
|
38
|
+
* @param {string} [method='GET']
|
|
39
|
+
* @param {*} data
|
|
40
|
+
* @param {*} [headers={}]
|
|
41
|
+
* @param {*} [otherProps={}]
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
export declare function request(dataAPI: any, method: string, data: any, headers?: {}, otherProps?: any): Promise<unknown>;
|
|
45
|
+
/**
|
|
46
|
+
* do jsonp request
|
|
47
|
+
*
|
|
48
|
+
* @export
|
|
49
|
+
* @param {*} dataAPI
|
|
50
|
+
* @param {*} [params={}]
|
|
51
|
+
* @param {*} [otherProps={}]
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
export declare function jsonp(dataAPI: any, params?: {}, otherProps?: {}): Promise<unknown>;
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.buildUrl = buildUrl;
|
|
6
|
+
exports.get = get;
|
|
7
|
+
exports.jsonp = jsonp;
|
|
8
|
+
exports.post = post;
|
|
9
|
+
exports.request = request;
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
require("whatwg-fetch");
|
|
12
|
+
var _fetchJsonp = _interopRequireDefault(require("fetch-jsonp"));
|
|
13
|
+
var _ = require(".");
|
|
14
|
+
/**
|
|
15
|
+
* this is a private method, export for testing purposes only.
|
|
16
|
+
*
|
|
17
|
+
* @export
|
|
18
|
+
* @param {*} dataAPI
|
|
19
|
+
* @param {*} params
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
function buildUrl(dataAPI, params) {
|
|
23
|
+
var paramStr = (0, _.serializeParams)(params);
|
|
24
|
+
if (paramStr) {
|
|
25
|
+
return dataAPI.indexOf('?') > 0 ? dataAPI + "&" + paramStr : dataAPI + "?" + paramStr;
|
|
26
|
+
}
|
|
27
|
+
return dataAPI;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* do Get request
|
|
32
|
+
*
|
|
33
|
+
* @export
|
|
34
|
+
* @param {*} dataAPI
|
|
35
|
+
* @param {*} [params={}]
|
|
36
|
+
* @param {*} [headers={}]
|
|
37
|
+
* @param {*} [otherProps={}]
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
function get(dataAPI, params, headers, otherProps) {
|
|
41
|
+
if (params === void 0) {
|
|
42
|
+
params = {};
|
|
43
|
+
}
|
|
44
|
+
if (headers === void 0) {
|
|
45
|
+
headers = {};
|
|
46
|
+
}
|
|
47
|
+
if (otherProps === void 0) {
|
|
48
|
+
otherProps = {};
|
|
49
|
+
}
|
|
50
|
+
var processedHeaders = (0, _extends2["default"])({
|
|
51
|
+
Accept: 'application/json'
|
|
52
|
+
}, headers);
|
|
53
|
+
var url = buildUrl(dataAPI, params);
|
|
54
|
+
return request(url, 'GET', null, processedHeaders, otherProps);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* do Post request
|
|
59
|
+
*
|
|
60
|
+
* @export
|
|
61
|
+
* @param {*} dataAPI
|
|
62
|
+
* @param {*} [params={}]
|
|
63
|
+
* @param {*} [headers={}]
|
|
64
|
+
* @param {*} [otherProps={}]
|
|
65
|
+
* @returns
|
|
66
|
+
*/
|
|
67
|
+
function post(dataAPI, params, headers, otherProps) {
|
|
68
|
+
if (params === void 0) {
|
|
69
|
+
params = {};
|
|
70
|
+
}
|
|
71
|
+
if (headers === void 0) {
|
|
72
|
+
headers = {};
|
|
73
|
+
}
|
|
74
|
+
if (otherProps === void 0) {
|
|
75
|
+
otherProps = {};
|
|
76
|
+
}
|
|
77
|
+
var processedHeaders = (0, _extends2["default"])({
|
|
78
|
+
Accept: 'application/json',
|
|
79
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
80
|
+
}, headers);
|
|
81
|
+
var body = processedHeaders['Content-Type'].indexOf('application/json') > -1 || Array.isArray(params) ? JSON.stringify(params) : (0, _.serializeParams)(params);
|
|
82
|
+
return request(dataAPI, 'POST', body, processedHeaders, otherProps);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* do request
|
|
87
|
+
*
|
|
88
|
+
* @export
|
|
89
|
+
* @param {*} dataAPI
|
|
90
|
+
* @param {string} [method='GET']
|
|
91
|
+
* @param {*} data
|
|
92
|
+
* @param {*} [headers={}]
|
|
93
|
+
* @param {*} [otherProps={}]
|
|
94
|
+
* @returns
|
|
95
|
+
*/
|
|
96
|
+
function request(dataAPI, method, data, headers, otherProps) {
|
|
97
|
+
if (method === void 0) {
|
|
98
|
+
method = 'GET';
|
|
99
|
+
}
|
|
100
|
+
if (headers === void 0) {
|
|
101
|
+
headers = {};
|
|
102
|
+
}
|
|
103
|
+
if (otherProps === void 0) {
|
|
104
|
+
otherProps = {};
|
|
105
|
+
}
|
|
106
|
+
var processedHeaders = headers || {};
|
|
107
|
+
var payload = data;
|
|
108
|
+
if (method === 'PUT' || method === 'DELETE') {
|
|
109
|
+
processedHeaders = (0, _extends2["default"])({
|
|
110
|
+
Accept: 'application/json',
|
|
111
|
+
'Content-Type': 'application/json'
|
|
112
|
+
}, processedHeaders);
|
|
113
|
+
payload = JSON.stringify(payload || {});
|
|
114
|
+
}
|
|
115
|
+
return new Promise(function (resolve, reject) {
|
|
116
|
+
if (otherProps.timeout) {
|
|
117
|
+
setTimeout(function () {
|
|
118
|
+
reject(new Error('timeout'));
|
|
119
|
+
}, otherProps.timeout);
|
|
120
|
+
}
|
|
121
|
+
fetch(dataAPI, (0, _extends2["default"])({
|
|
122
|
+
method: method,
|
|
123
|
+
credentials: 'include',
|
|
124
|
+
headers: processedHeaders,
|
|
125
|
+
body: payload
|
|
126
|
+
}, otherProps)).then(function (response) {
|
|
127
|
+
switch (response.status) {
|
|
128
|
+
case 200:
|
|
129
|
+
case 201:
|
|
130
|
+
case 202:
|
|
131
|
+
return response.json();
|
|
132
|
+
case 204:
|
|
133
|
+
if (method === 'DELETE') {
|
|
134
|
+
return {
|
|
135
|
+
success: true
|
|
136
|
+
};
|
|
137
|
+
} else {
|
|
138
|
+
return {
|
|
139
|
+
__success: false,
|
|
140
|
+
code: response.status
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
case 400:
|
|
144
|
+
case 401:
|
|
145
|
+
case 403:
|
|
146
|
+
case 404:
|
|
147
|
+
case 406:
|
|
148
|
+
case 410:
|
|
149
|
+
case 422:
|
|
150
|
+
case 500:
|
|
151
|
+
return response.json().then(function (res) {
|
|
152
|
+
return {
|
|
153
|
+
__success: false,
|
|
154
|
+
code: response.status,
|
|
155
|
+
data: res
|
|
156
|
+
};
|
|
157
|
+
})["catch"](function () {
|
|
158
|
+
return {
|
|
159
|
+
__success: false,
|
|
160
|
+
code: response.status
|
|
161
|
+
};
|
|
162
|
+
});
|
|
163
|
+
default:
|
|
164
|
+
}
|
|
165
|
+
return null;
|
|
166
|
+
}).then(function (json) {
|
|
167
|
+
if (!json) {
|
|
168
|
+
reject(json);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (json.__success !== false) {
|
|
172
|
+
resolve(json);
|
|
173
|
+
} else {
|
|
174
|
+
// eslint-disable-next-line no-param-reassign
|
|
175
|
+
delete json.__success;
|
|
176
|
+
reject(json);
|
|
177
|
+
}
|
|
178
|
+
})["catch"](function (err) {
|
|
179
|
+
reject(err);
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* do jsonp request
|
|
186
|
+
*
|
|
187
|
+
* @export
|
|
188
|
+
* @param {*} dataAPI
|
|
189
|
+
* @param {*} [params={}]
|
|
190
|
+
* @param {*} [otherProps={}]
|
|
191
|
+
* @returns
|
|
192
|
+
*/
|
|
193
|
+
function jsonp(dataAPI, params, otherProps) {
|
|
194
|
+
if (params === void 0) {
|
|
195
|
+
params = {};
|
|
196
|
+
}
|
|
197
|
+
if (otherProps === void 0) {
|
|
198
|
+
otherProps = {};
|
|
199
|
+
}
|
|
200
|
+
return new Promise(function (resolve, reject) {
|
|
201
|
+
var processedOtherProps = (0, _extends2["default"])({
|
|
202
|
+
timeout: 5000
|
|
203
|
+
}, otherProps);
|
|
204
|
+
var url = buildUrl(dataAPI, params);
|
|
205
|
+
(0, _fetchJsonp["default"])(url, processedOtherProps).then(function (response) {
|
|
206
|
+
response.json();
|
|
207
|
+
}).then(function (json) {
|
|
208
|
+
if (json) {
|
|
209
|
+
resolve(json);
|
|
210
|
+
} else {
|
|
211
|
+
reject();
|
|
212
|
+
}
|
|
213
|
+
})["catch"](function (err) {
|
|
214
|
+
reject(err);
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
}
|