@choerodon/master
Version:
A package of Master for Choerodon platform.
54 lines (40 loc) • 1.66 kB
JavaScript
import { get } from 'lodash';
import JSONbig from 'json-bigint';
import paramsSerializer from "./paramsSerializer";
export function transformDataToString(data) {
if (typeof data !== 'string') {
return JSONbig.stringify(data);
}
return data;
} // response里面返回的config.data是个字符串对象
function getDataMark(data) {
if (data) {
var tempData = data;
if (typeof tempData !== 'string') {
try {
tempData = JSONbig.stringify(tempData);
} catch (error) {
console.error('stringfy markKey of data failed');
}
}
return tempData;
}
return '';
} // 区别请求的唯一标识,这里用方法名+请求路径
// 如果一个项目里有多个不同baseURL的请求 + 参数
export default function getMark(config) {
var _getKey, _config$method;
var getKey = function getKey(key) {
return get(config, key);
};
var tempParam = getKey('params');
if (get(tempParam, 'forceUpdate')) {
delete tempParam.forceUpdate;
} // params标识处理
var tempQueryString = ((_getKey = getKey('paramsSerializer')) !== null && _getKey !== void 0 ? _getKey : paramsSerializer)(tempParam); // data标识处理
var dataMark = getDataMark(getKey('data')); // base标识
var requestMark = [(config === null || config === void 0 ? void 0 : (_config$method = config.method) === null || _config$method === void 0 ? void 0 : _config$method.toLowerCase()) || 'unknownMethod', config === null || config === void 0 ? void 0 : config.url];
getKey('params') && requestMark.push(tempQueryString);
getKey('data') && requestMark.push(dataMark);
return requestMark.join('&');
}