config.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
  3. var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
  4. _Object$defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.normalizeUploadConfig = normalizeUploadConfig;
  8. var _isArray = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/is-array"));
  9. var _iterator = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol/iterator"));
  10. var _symbol = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol"));
  11. var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols"));
  12. var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
  13. var _config = require("../config");
  14. var _upload = require("../upload");
  15. var __assign = void 0 && (void 0).__assign || function () {
  16. __assign = _assign["default"] || function (t) {
  17. for (var s, i = 1, n = arguments.length; i < n; i++) {
  18. s = arguments[i];
  19. for (var p in s) {
  20. if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
  21. }
  22. }
  23. return t;
  24. };
  25. return __assign.apply(this, arguments);
  26. };
  27. var __rest = void 0 && (void 0).__rest || function (s, e) {
  28. var t = {};
  29. for (var p in s) {
  30. if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
  31. }
  32. if (s != null && typeof _getOwnPropertySymbols["default"] === "function") for (var i = 0, p = (0, _getOwnPropertySymbols["default"])(s); i < p.length; i++) {
  33. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
  34. }
  35. return t;
  36. };
  37. var __read = void 0 && (void 0).__read || function (o, n) {
  38. var m = typeof _symbol["default"] === "function" && o[_iterator["default"]];
  39. if (!m) return o;
  40. var i = m.call(o),
  41. r,
  42. ar = [],
  43. e;
  44. try {
  45. while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
  46. ar.push(r.value);
  47. }
  48. } catch (error) {
  49. e = {
  50. error: error
  51. };
  52. } finally {
  53. try {
  54. if (r && !r.done && (m = i["return"])) m.call(i);
  55. } finally {
  56. if (e) throw e.error;
  57. }
  58. }
  59. return ar;
  60. };
  61. var __spread = void 0 && (void 0).__spread || function () {
  62. for (var ar = [], i = 0; i < arguments.length; i++) {
  63. ar = ar.concat(__read(arguments[i]));
  64. }
  65. return ar;
  66. };
  67. function normalizeUploadConfig(config, logger) {
  68. var _a = __assign({}, config),
  69. upprotocol = _a.upprotocol,
  70. uphost = _a.uphost,
  71. otherConfig = __rest(_a, ["upprotocol", "uphost"]);
  72. var normalizeConfig = __assign({
  73. uphost: [],
  74. retryCount: 3,
  75. checkByMD5: false,
  76. forceDirect: false,
  77. useCdnDomain: true,
  78. checkByServer: false,
  79. concurrentRequestLimit: 3,
  80. chunkSize: _upload.DEFAULT_CHUNK_SIZE,
  81. upprotocol: 'https',
  82. debugLogLevel: 'OFF',
  83. disableStatisticsReport: false
  84. }, otherConfig); // 兼容原来的 http: https: 的写法
  85. if (upprotocol) {
  86. normalizeConfig.upprotocol = upprotocol.replace(/:$/, '');
  87. }
  88. var hostList = [];
  89. if (logger && (config === null || config === void 0 ? void 0 : config.uphost) != null && (config === null || config === void 0 ? void 0 : config.region) != null) {
  90. logger.warn('do not use both the uphost and region config.');
  91. } // 如果同时指定了 uphost 参数,添加到可用 host 列表
  92. if (uphost) {
  93. if ((0, _isArray["default"])(uphost)) {
  94. hostList.push.apply(hostList, __spread(uphost));
  95. } else {
  96. hostList.push(uphost);
  97. } // 否则如果用户传了 region,添加指定 region 的 host 到可用 host 列表
  98. } else if (normalizeConfig === null || normalizeConfig === void 0 ? void 0 : normalizeConfig.region) {
  99. var hostMap = _config.regionUphostMap[normalizeConfig === null || normalizeConfig === void 0 ? void 0 : normalizeConfig.region];
  100. if (normalizeConfig.useCdnDomain) {
  101. hostList.push.apply(hostList, __spread(hostMap.cdnUphost));
  102. } else {
  103. hostList.push.apply(hostList, __spread(hostMap.srcUphost));
  104. }
  105. }
  106. return __assign(__assign({}, normalizeConfig), {
  107. uphost: hostList.filter(Boolean)
  108. });
  109. }