jcc_rpc
Version:
rpc api of jcc
67 lines • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var util_1 = require("../util");
var axios = require("axios");
var CancelToken = axios.CancelToken;
var service = axios.create({
timeout: 30000,
withCredentials: true
});
var isObject = function (obj) {
return Object.prototype.toString.call(obj) === "[object Object]";
};
service.interceptors.request.use(function (config) {
util_1.pendingTasks.cancel(config);
config.cancelToken = new CancelToken(function (cancel) {
var pathname = util_1.getPath(config);
if (pathname) {
var task = {
cancel: cancel,
pathname: pathname
};
util_1.pendingTasks.add(task);
}
});
return config;
}, function (error, response) {
console.log(error);
console.log(response);
});
var handleResponse = function (res) {
var response = {};
var data = res.data;
var date = res.headers.date;
if (isObject(data)) {
if (data.code === "0") {
response.result = true;
}
else {
response.result = false;
}
Object.assign(response, data);
}
else {
response.result = true;
response.data = data;
}
// set server date
response.date = date;
return response;
};
service.interceptors.response.use(function (response) {
util_1.pendingTasks.remove(response.config);
return handleResponse(response);
}, function (error) {
util_1.pendingTasks.remove(error.config);
if (axios.isCancel(error)) {
error.message = "pending request had been canceled";
}
return {
host: error.host,
msg: error.message,
port: error.port,
result: false
};
});
exports.default = service;
//# sourceMappingURL=index.js.map