UNPKG

@auraxy/invoice-services

Version:

发票前端 http ajax,mqtt,localStorage,cookie 再封装

268 lines (229 loc) 7.24 kB
/** * 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 };