@auraxy/invoice-services
Version:
发票前端 http ajax,mqtt,localStorage,cookie 再封装
268 lines (229 loc) • 7.24 kB
JavaScript
/**
* Bundle of @auraxy/invoice-services
* Generated: 2021-10-12
* Version: 1.2.5
* License: MIT
* Author: 2631541504@qq.com
*/
import { Http, Mqtt } from '@auraxy/services';
import { singletonObj } from '@livelybone/singleton';
import { StorageItem } from '@livelybone/storage';
import { v4 } from 'uuid';
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) {
symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
}
keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
if (i % 2) {
ownKeys(Object(source), true).forEach(function (key) {
_defineProperty(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}
return target;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
var ResCode;
(function (ResCode) {
ResCode[ResCode["SUCCESS"] = 0] = "SUCCESS";
ResCode[ResCode["PARAM_ERROR_CODE"] = -1] = "PARAM_ERROR_CODE";
ResCode[ResCode["AUTH_FAILED"] = -2] = "AUTH_FAILED";
ResCode[ResCode["SYS_ERROR_CODE"] = -3] = "SYS_ERROR_CODE";
ResCode[ResCode["TIMEOUT_ERROR_CODE"] = -4] = "TIMEOUT_ERROR_CODE";
ResCode[ResCode["SHOW_SYS_ERROR"] = -1000] = "SHOW_SYS_ERROR";
})(ResCode || (ResCode = {}));
function isError(data) {
return !data || data.code !== ResCode.SUCCESS;
}
function isOldRes(res) {
return res.status !== undefined;
}
function dealRes(res) {
if (isOldRes(res)) {
var responseCode = res.responseCode,
status = res.status,
total = res.total,
entry = res.entry,
message = res.message;
var code = ResCode.SUCCESS;
if (!status) {
code = +responseCode === 10222 || +responseCode === 107 ? ResCode.AUTH_FAILED : ResCode.SHOW_SYS_ERROR;
return {
code: code,
message: message
};
}
return {
code: code,
data: total !== undefined ? {
total: total,
entry: entry
} : entry
};
}
return _objectSpread2(_objectSpread2({}, res), {}, {
code: +res.code
});
}
function getMsg(err) {
switch (err.resCode) {
case ResCode.PARAM_ERROR_CODE:
return '参数异常,请检查您提交的内容';
case ResCode.AUTH_FAILED:
return '认证失败,请重新登录';
case ResCode.SYS_ERROR_CODE:
return '系统繁忙,请重试';
case ResCode.TIMEOUT_ERROR_CODE:
return '响应超时,请重试';
default:
return err.message;
}
}
function errorDeal(e) {
// const {
// config: { rootPath = '', url = '' },
// } = e
// const api = url.replace(rootPath, '').split('?')[0]
// e.message = `Api \`${api}\`: ${e.message}`
if (e.message === 'Network Error') e.message = '网络出错了,请重试';else if (!e.message) e.message = getMsg(e);
throw e;
}
function interceptors(_ref) {
var getToken = _ref.getToken,
responseCallback = _ref.responseCallback;
return {
request: [function (conf) {
return !getToken ? conf : _objectSpread2(_objectSpread2({}, conf), {}, {
headers: _objectSpread2(_objectSpread2({}, conf.headers), {}, {
Authorization: getToken()
})
});
}],
response: [function (res) {
if (responseCallback) responseCallback(res);
var data = res.data,
conf = res.config,
request = res.request;
var $data = dealRes(data);
var message = $data.message,
code = $data.code,
data1 = $data.data;
if (isError($data)) {
var error = new Error(message);
error.resCode = code;
error.config = conf;
error.request = request;
error.response = res;
errorDeal(error);
}
return data1;
}, errorDeal]
};
}
function ProxyHttp(baseUrl, options) {
var ProxyURL = {
test: 'https://proxy.yipiaoyun.cn',
prod: 'https://proxy.yipiaoyun.com'
};
var baseURL = ProxyURL[baseUrl] || baseUrl;
return singletonObj(baseURL, function () {
return new Http({
baseURL: baseURL,
interceptors: interceptors(options || {}),
errorHandler: options && options.errorHandler
});
});
}
function OperateProxyHttp(baseUrl, options) {
var OperateProxyURL = {
test: 'https://operate-proxy.yipiaoyun.cn',
prod: 'https://operate-proxy.yipiaoyun.com'
};
var baseURL = OperateProxyURL[baseUrl] || baseUrl;
return singletonObj(baseURL, function () {
return new Http({
baseURL: baseURL,
interceptors: interceptors(options || {}),
errorHandler: options && options.errorHandler
});
});
}
function invoiceMqtt(options) {
var DeviceId = new StorageItem('DeviceId');
var uuid = DeviceId.get() || v4(); // 信息太大,不用 Cookie
var MqttConfig = singletonObj('MqttConfig', function () {
return new StorageItem('MQTT_CONFIG');
}); // const ParentTopic = {
// test: 'fapiao_web_daily',
// prod: 'fapiao_web_prod',
// }
var ParentTopic = {
test: 'kaipiao_daily',
beta: 'kaipiao_beta',
demo: 'kaipiao_demo',
prod: 'kaipiao_prod'
};
var MqttUrl = {
LITE_APP: "/lite/message/mqtt_token?deviceId=".concat(uuid),
KAIPIAO_APP: "/kaipiao-app/message/mqtt_token?source=1&deviceId=".concat(uuid)
};
var http = options.http,
getKey = options.getKey,
_options$parentTopic = options.parentTopic,
$parentTopic = _options$parentTopic === void 0 ? '' : _options$parentTopic,
_options$appName = options.appName,
appName = _options$appName === void 0 ? 'LITE_APP' : _options$appName;
var parentTopic = ParentTopic[$parentTopic] || $parentTopic;
var mqttUrl = MqttUrl[appName];
var getConfig = function getConfig() {
var key = getKey() || '';
return singletonObj("getMqttConfig-".concat(key), function () {
var config = MqttConfig.get();
var deviceId = DeviceId.get();
if (deviceId && key && config && config[key]) {
return Promise.resolve(_objectSpread2(_objectSpread2({}, config[key]), {}, {
parentTopic: parentTopic
}));
}
return (typeof http === 'function' ? http() : http).get(mqttUrl).then(function (res) {
var conf = _objectSpread2(_objectSpread2({}, res), {}, {
parentTopic: parentTopic
});
MqttConfig.set(_defineProperty({}, key, conf));
DeviceId.set(uuid);
return conf;
});
});
};
return new Mqtt(getConfig);
}
export { OperateProxyHttp, ProxyHttp, ResCode, invoiceMqtt };