UNPKG

@aecworks/bimbox-bimserver-sdk-js

Version:

AECWorks BIMBox 产品线 BIMServer 的 sdk 的 JavaScript 实现,采用Typescript语言

101 lines 3.1 kB
/** * 对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