@aecworks/bimbox-bimserver-sdk-js
Version:
AECWorks BIMBox 产品线 BIMServer 的 sdk 的 JavaScript 实现,采用Typescript语言
101 lines • 3.1 kB
JavaScript
/**
* 对http请求参数代理
*/
import EventBus from '@aecworks/event-bus';
var argumentsProxy = function (vo) {
if (vo) {
if (typeof vo.revert === 'function') {
return vo.revert();
}
else {
return vo;
}
}
else {
return null;
}
};
/**
* 对http结果代理
*/
var httpResultProxy = function (resultPromise, ViewObjectClass) {
if (ViewObjectClass === void 0) { ViewObjectClass = null; }
return new Promise(function (resolve, reject) {
resultPromise
.then(function (response) {
if (response) {
// logger.log({log: 'httpResultProxy: response from bimserver', response: {...response}})
if (response.status === 200) {
resolve(mapViewObject(ViewObjectClass, response.data));
}
else {
reject(response);
}
}
else {
reject(new Error('服务器返回数据异常'));
}
}, function (error) {
// logger.log(error)
reject(error);
})
.catch(function (error) {
if (error.response) {
reject(new Error(error.response.statusText));
}
else {
reject(new Error('服务器异常!'));
}
});
});
};
var mapViewObject = function (ViewObjectClass, data) {
if (ViewObjectClass) {
if (Array.isArray(data)) {
var arr = [];
for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
var item = data_1[_i];
arr.push(new ViewObjectClass(item).getModel());
}
return arr;
}
else {
return new ViewObjectClass(data).getModel();
}
}
else {
return data;
}
};
/**
+ * 对http请求前代理
+ */
var interceptors = function (axios) {
// axios.defaults.timeout = 1000;
// const log = Logger('proxy', {logLevel: 'debug'});
axios.interceptors.request.use(function (config) {
EventBus.instance.dispatch('SIGN_IN', config)
.then(function () {
// log.debug('请求前success');
}).catch(function () {
});
return config;
}, function (error) {
// log.debug('请求前err');
return Promise.reject(error);
});
axios.interceptors.response.use(function (response) {
// Do something with response data
return response;
}, function (error) {
EventBus.instance.dispatch('RESPONSE_ERROR', error)
.then(function () {
// log.debug('请求前success');
}).catch(function () {
});
// console.log('response error', error.response);
return Promise.reject(error.response);
});
};
export { argumentsProxy, httpResultProxy, mapViewObject, interceptors, };
//# sourceMappingURL=proxy.js.map