@lcap/asl
Version:
NetEase Application Specific Language
68 lines • 2.29 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const errHandles_1 = __importDefault(require("./errHandles"));
const isPromise = function (func) {
return func && typeof func.then === 'function';
};
function httpCode(response, params, requestInfo) {
const data = response.data;
if ((data.code === undefined) || (data.code + '').startsWith('2')) {
return response;
}
if (typeof window !== 'undefined' && new RegExp('^/designer').test(window.location.pathname)) {
if (data.code === 401) {
window.location.href = '/login';
}
}
return Promise.reject(data);
}
function shortResponse(response, params, requestInfo) {
if (response.data && response.data.result !== undefined) {
return response.data.result;
}
else {
return response.data;
}
}
const httpError = {
reject(err, params, requestInfo) {
const { url, config = {} } = requestInfo;
const { method, body = {}, headers = {} } = url;
// 处理code
if (err === 'expired request') {
throw err;
}
let handle;
if (!err.code) {
handle = errHandles_1.default.localError;
}
else {
handle = errHandles_1.default[err.code];
if (!handle)
handle = errHandles_1.default.defaults;
}
const handleOut = handle({
config, baseURL: (config.baseURL || ''), url, method, body, headers,
}, err);
if (isPromise(handleOut))
return handleOut;
throw err;
},
};
function default_1(service) {
if (process.env.NODE_ENV === 'development') {
service.preConfig.set('baseURL', (requestInfo, baseURL) => {
if (!baseURL.startsWith('http')) {
throw new Error('set baseURL only support cross domain');
}
});
}
service.postConfig.set('httpCode', httpCode);
service.postConfig.set('httpError', httpError);
service.postConfig.set('shortResponse', shortResponse);
}
exports.default = default_1;
//# sourceMappingURL=add.configs.js.map