{"version":3,"sources":["jsdelivr-header.js","/npm/umi-request@1.4.0/dist/index.js"],"names":[],"mappings":"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","file":"/npm/umi-request@1.4.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/umi-request@1.4.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar qs = require('qs');\nrequire('isomorphic-fetch');\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n\n    if (enumerableOnly) {\n      symbols = symbols.filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n      });\n    }\n\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction _construct(Parent, args, Class) {\n  if (_isNativeReflectConstruct()) {\n    _construct = Reflect.construct;\n  } else {\n    _construct = function _construct(Parent, args, Class) {\n      var a = [null];\n      a.push.apply(a, args);\n      var Constructor = Function.bind.apply(Parent, a);\n      var instance = new Constructor();\n      if (Class) _setPrototypeOf(instance, Class.prototype);\n      return instance;\n    };\n  }\n\n  return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n  return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n  var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n  _wrapNativeSuper = function _wrapNativeSuper(Class) {\n    if (Class === null || !_isNativeFunction(Class)) return Class;\n\n    if (typeof Class !== \"function\") {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n\n    if (typeof _cache !== \"undefined\") {\n      if (_cache.has(Class)) return _cache.get(Class);\n\n      _cache.set(Class, Wrapper);\n    }\n\n    function Wrapper() {\n      return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n    }\n\n    Wrapper.prototype = Object.create(Class.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    return _setPrototypeOf(Wrapper, Class);\n  };\n\n  return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n\n  return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n  var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n  return function _createSuperInternal() {\n    var Super = _getPrototypeOf(Derived),\n        result;\n\n    if (hasNativeReflectConstruct) {\n      var NewTarget = _getPrototypeOf(this).constructor;\n\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n\n    return _possibleConstructorReturn(this, result);\n  };\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n  return arr2;\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// 返回一个组合了所有插件的“插件”\nfunction compose(middlewares) {\n  if (!Array.isArray(middlewares)) throw new TypeError('Middlewares must be an array!');\n  var middlewaresLen = middlewares.length;\n\n  for (var i = 0; i < middlewaresLen; i++) {\n    if (typeof middlewares[i] !== 'function') {\n      throw new TypeError('Middleware must be componsed of function');\n    }\n  }\n\n  return function wrapMiddlewares(params, next) {\n    var index = -1;\n\n    function dispatch(i) {\n      if (i <= index) {\n        return Promise.reject(new Error('next() should not be called multiple times in one middleware!'));\n      }\n\n      index = i;\n      var fn = middlewares[i] || next;\n      if (!fn) return Promise.resolve();\n\n      try {\n        return Promise.resolve(fn(params, function () {\n          return dispatch(i + 1);\n        }));\n      } catch (err) {\n        return Promise.reject(err);\n      }\n    }\n\n    return dispatch(0);\n  };\n}\n\nvar Onion = /*#__PURE__*/function () {\n  function Onion(defaultMiddlewares) {\n    _classCallCheck(this, Onion);\n\n    if (!Array.isArray(defaultMiddlewares)) throw new TypeError('Default middlewares must be an array!');\n    this.defaultMiddlewares = _toConsumableArray(defaultMiddlewares);\n    this.middlewares = [];\n  }\n\n  _createClass(Onion, [{\n    key: \"use\",\n    value: // 内置内核中间件长度\n    function use(newMiddleware) {\n      var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        global: false,\n        core: false,\n        defaultInstance: false\n      };\n      var core = false;\n      var global = false;\n      var defaultInstance = false;\n\n      if (typeof opts === 'number') {\n        if (process && process.env && process.env.NODE_ENV === 'development') {\n          console.warn('use() options should be object, number property would be deprecated in future，please update use() options to \"{ core: true }\".');\n        }\n\n        core = true;\n        global = false;\n      } else if (_typeof(opts) === 'object' && opts) {\n        global = opts.global || false;\n        core = opts.core || false;\n        defaultInstance = opts.defaultInstance || false;\n      } // 全局中间件\n\n\n      if (global) {\n        Onion.globalMiddlewares.splice(Onion.globalMiddlewares.length - Onion.defaultGlobalMiddlewaresLength, 0, newMiddleware);\n        return;\n      } // 内核中间件\n\n\n      if (core) {\n        Onion.coreMiddlewares.splice(Onion.coreMiddlewares.length - Onion.defaultCoreMiddlewaresLength, 0, newMiddleware);\n        return;\n      } // 默认实例中间件，供开发者使用\n\n\n      if (defaultInstance) {\n        this.defaultMiddlewares.push(newMiddleware);\n        return;\n      } // 实例中间件\n\n\n      this.middlewares.push(newMiddleware);\n    }\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n      var fn = compose([].concat(_toConsumableArray(this.middlewares), _toConsumableArray(this.defaultMiddlewares), _toConsumableArray(Onion.globalMiddlewares), _toConsumableArray(Onion.coreMiddlewares)));\n      return fn(params);\n    }\n  }]);\n\n  return Onion;\n}();\n\nOnion.globalMiddlewares = [];\nOnion.defaultGlobalMiddlewaresLength = 0;\nOnion.coreMiddlewares = [];\nOnion.defaultCoreMiddlewaresLength = 0;\n\nvar MapCache = /*#__PURE__*/function () {\n  function MapCache(options) {\n    _classCallCheck(this, MapCache);\n\n    this.cache = new Map();\n    this.timer = {};\n    this.extendOptions(options);\n  }\n\n  _createClass(MapCache, [{\n    key: \"extendOptions\",\n    value: function extendOptions(options) {\n      this.maxCache = options.maxCache || 0;\n    }\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      return this.cache.get(JSON.stringify(key));\n    }\n  }, {\n    key: \"set\",\n    value: function set(key, value) {\n      var _this = this;\n\n      var ttl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60000;\n\n      // 如果超过最大缓存数, 删除头部的第一个缓存.\n      if (this.maxCache > 0 && this.cache.size >= this.maxCache) {\n        var deleteKey = _toConsumableArray(this.cache.keys())[0];\n\n        this.cache.delete(deleteKey);\n\n        if (this.timer[deleteKey]) {\n          clearTimeout(this.timer[deleteKey]);\n        }\n      }\n\n      var cacheKey = JSON.stringify(key);\n      this.cache.set(cacheKey, value);\n\n      if (ttl > 0) {\n        this.timer[cacheKey] = setTimeout(function () {\n          _this.cache.delete(cacheKey);\n\n          delete _this.timer[cacheKey];\n        }, ttl);\n      }\n    }\n  }, {\n    key: \"delete\",\n    value: function _delete(key) {\n      var cacheKey = JSON.stringify(key);\n      delete this.timer[cacheKey];\n      return this.cache.delete(cacheKey);\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this.timer = {};\n      return this.cache.clear();\n    }\n  }]);\n\n  return MapCache;\n}();\n/**\n * 请求异常\n */\n\nvar RequestError = /*#__PURE__*/function (_Error) {\n  _inherits(RequestError, _Error);\n\n  var _super = _createSuper(RequestError);\n\n  function RequestError(text, request) {\n    var _this2;\n\n    var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'RequestError';\n\n    _classCallCheck(this, RequestError);\n\n    _this2 = _super.call(this, text);\n    _this2.name = 'RequestError';\n    _this2.request = request;\n    _this2.type = type;\n    return _this2;\n  }\n\n  return RequestError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n * 响应异常\n */\n\nvar ResponseError = /*#__PURE__*/function (_Error2) {\n  _inherits(ResponseError, _Error2);\n\n  var _super2 = _createSuper(ResponseError);\n\n  function ResponseError(response, text, data, request) {\n    var _this3;\n\n    var type = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'ResponseError';\n\n    _classCallCheck(this, ResponseError);\n\n    _this3 = _super2.call(this, text || response.statusText);\n    _this3.name = 'ResponseError';\n    _this3.data = data;\n    _this3.response = response;\n    _this3.request = request;\n    _this3.type = type;\n    return _this3;\n  }\n\n  return ResponseError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n * http://gitlab.alipay-inc.com/KBSJ/gxt/blob/release_gxt_S8928905_20180531/src/util/request.js#L63\n * 支持gbk\n */\n\nfunction readerGBK(file) {\n  return new Promise(function (resolve, reject) {\n    var reader = new FileReader();\n\n    reader.onload = function () {\n      resolve(reader.result);\n    };\n\n    reader.onerror = reject;\n    reader.readAsText(file, 'GBK'); // setup GBK decoding\n  });\n}\n/**\n * 安全的JSON.parse\n */\n\nfunction safeJsonParse(data) {\n  var throwErrIfParseFail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var response = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  var request = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  try {\n    return JSON.parse(data);\n  } catch (e) {\n    if (throwErrIfParseFail) {\n      throw new ResponseError(response, 'JSON.parse fail', data, request, 'ParseError');\n    }\n  } // eslint-disable-line no-empty\n\n\n  return data;\n}\nfunction timeout2Throw(msec, timeoutMessage, request) {\n  return new Promise(function (_, reject) {\n    setTimeout(function () {\n      reject(new RequestError(timeoutMessage || \"timeout of \".concat(msec, \"ms exceeded\"), request, 'Timeout'));\n    }, msec);\n  });\n} // If request options contain 'cancelToken', reject request when token has been canceled\n\nfunction cancel2Throw(opt) {\n  return new Promise(function (_, reject) {\n    if (opt.cancelToken) {\n      opt.cancelToken.promise.then(function (cancel) {\n        reject(cancel);\n      });\n    }\n  });\n}\nvar toString = Object.prototype.toString; // Check env is browser or node\n\nfunction getEnv() {\n  var env; // Only Node.JS has a process variable that is of [[Class]] process\n\n  if (typeof process !== 'undefined' && toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    env = 'NODE';\n  }\n\n  if (typeof XMLHttpRequest !== 'undefined') {\n    env = 'BROWSER';\n  }\n\n  return env;\n}\nfunction isArray(val) {\n  return _typeof(val) === 'object' && Object.prototype.toString.call(val) === '[object Array]';\n}\nfunction isURLSearchParams(val) {\n  return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\nfunction isDate(val) {\n  return _typeof(val) === 'object' && Object.prototype.toString.call(val) === '[object Date]';\n}\nfunction isObject(val) {\n  return val !== null && _typeof(val) === 'object';\n}\nfunction forEach2ObjArr(target, callback) {\n  if (!target) return;\n\n  if (_typeof(target) !== 'object') {\n    target = [target];\n  }\n\n  if (isArray(target)) {\n    for (var i = 0; i < target.length; i++) {\n      callback.call(null, target[i], i, target);\n    }\n  } else {\n    for (var key in target) {\n      if (Object.prototype.hasOwnProperty.call(target, key)) {\n        callback.call(null, target[key], key, target);\n      }\n    }\n  }\n}\nfunction getParamObject(val) {\n  if (isURLSearchParams(val)) {\n    return qs.parse(val.toString(), {\n      strictNullHandling: true\n    });\n  }\n\n  if (typeof val === 'string') {\n    return [val];\n  }\n\n  return val;\n}\nfunction reqStringify(val) {\n  return qs.stringify(val, {\n    arrayFormat: 'repeat',\n    strictNullHandling: true\n  });\n}\nfunction mergeRequestOptions(options, options2Merge) {\n  return _objectSpread2(_objectSpread2(_objectSpread2({}, options), options2Merge), {}, {\n    headers: _objectSpread2(_objectSpread2({}, options.headers), options2Merge.headers),\n    params: _objectSpread2(_objectSpread2({}, getParamObject(options.params)), getParamObject(options2Merge.params)),\n    method: (options2Merge.method || options.method || 'get').toLowerCase()\n  });\n}\n\n// 前后缀拦截\nvar addfix = function addfix(url) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var prefix = options.prefix,\n      suffix = options.suffix;\n\n  if (prefix) {\n    url = \"\".concat(prefix).concat(url);\n  }\n\n  if (suffix) {\n    url = \"\".concat(url).concat(suffix);\n  }\n\n  return {\n    url: url,\n    options: options\n  };\n};\n\nvar warnedCoreType = false; // 默认缓存判断，开放缓存判断给非 get 请求使用\n\nfunction __defaultValidateCache(url, options) {\n  var _options$method = options.method,\n      method = _options$method === void 0 ? 'get' : _options$method;\n  return method.toLowerCase() === 'get';\n}\n\nfunction fetchMiddleware(ctx, next) {\n  if (!ctx) return next();\n  var _ctx$req = ctx.req;\n  _ctx$req = _ctx$req === void 0 ? {} : _ctx$req;\n  var _ctx$req$options = _ctx$req.options,\n      options = _ctx$req$options === void 0 ? {} : _ctx$req$options,\n      _ctx$req$url = _ctx$req.url,\n      url = _ctx$req$url === void 0 ? '' : _ctx$req$url,\n      cache = ctx.cache,\n      responseInterceptors = ctx.responseInterceptors;\n\n  var _options$timeout = options.timeout,\n      timeout = _options$timeout === void 0 ? 0 : _options$timeout,\n      timeoutMessage = options.timeoutMessage,\n      _options$__umiRequest = options.__umiRequestCoreType__,\n      __umiRequestCoreType__ = _options$__umiRequest === void 0 ? 'normal' : _options$__umiRequest,\n      _options$useCache = options.useCache,\n      useCache = _options$useCache === void 0 ? false : _options$useCache,\n      _options$method2 = options.method,\n      method = _options$method2 === void 0 ? 'get' : _options$method2,\n      params = options.params,\n      ttl = options.ttl,\n      _options$validateCach = options.validateCache,\n      validateCache = _options$validateCach === void 0 ? __defaultValidateCache : _options$validateCach;\n\n  if (__umiRequestCoreType__ !== 'normal') {\n    if (process && process.env && process.env.NODE_ENV === 'development' && warnedCoreType === false) {\n      warnedCoreType = true;\n      console.warn('__umiRequestCoreType__ is a internal property that use in umi-request, change its value would affect the behavior of request! It only use when you want to extend or use request core.');\n    }\n\n    return next();\n  }\n\n  var adapter = fetch;\n\n  if (!adapter) {\n    throw new Error('Global fetch not exist!');\n  } // 从缓存池检查是否有缓存数据\n\n\n  var isBrowser = getEnv() === 'BROWSER';\n  var needCache = validateCache(url, options) && useCache && isBrowser;\n\n  if (needCache) {\n    var responseCache = cache.get({\n      url: url,\n      params: params,\n      method: method\n    });\n\n    if (responseCache) {\n      responseCache = responseCache.clone();\n      responseCache.useCache = true;\n      ctx.res = responseCache;\n      return next();\n    }\n  }\n\n  var response; // 超时处理、取消请求处理\n\n  if (timeout > 0) {\n    response = Promise.race([cancel2Throw(options), adapter(url, options), timeout2Throw(timeout, timeoutMessage, ctx.req)]);\n  } else {\n    response = Promise.race([cancel2Throw(options), adapter(url, options)]);\n  } // 兼容老版本 response.interceptor\n\n\n  responseInterceptors.forEach(function (handler) {\n    response = response.then(function (res) {\n      // Fix multiple clones not working, issue: https://github.com/github/fetch/issues/504\n      var clonedRes = typeof res.clone === 'function' ? res.clone() : res;\n      return handler(clonedRes, options);\n    });\n  });\n  return response.then(function (res) {\n    // 是否存入缓存池\n    if (needCache) {\n      if (res.status === 200) {\n        var copy = res.clone();\n        copy.useCache = true;\n        cache.set({\n          url: url,\n          params: params,\n          method: method\n        }, copy, ttl);\n      }\n    }\n\n    ctx.res = res;\n    return next();\n  });\n}\n\nfunction parseResponseMiddleware(ctx, next) {\n  var copy;\n  return next().then(function () {\n    if (!ctx) return;\n    var _ctx$res = ctx.res,\n        res = _ctx$res === void 0 ? {} : _ctx$res,\n        _ctx$req = ctx.req,\n        req = _ctx$req === void 0 ? {} : _ctx$req;\n\n    var _ref = req || {},\n        _ref$options = _ref.options;\n\n    _ref$options = _ref$options === void 0 ? {} : _ref$options;\n    var _ref$options$response = _ref$options.responseType,\n        responseType = _ref$options$response === void 0 ? 'json' : _ref$options$response,\n        _ref$options$charset = _ref$options.charset,\n        charset = _ref$options$charset === void 0 ? 'utf8' : _ref$options$charset,\n        _ref$options$getRespo = _ref$options.getResponse,\n        _ref$options$throwErr = _ref$options.throwErrIfParseFail,\n        throwErrIfParseFail = _ref$options$throwErr === void 0 ? false : _ref$options$throwErr,\n        _ref$options$parseRes = _ref$options.parseResponse,\n        parseResponse = _ref$options$parseRes === void 0 ? true : _ref$options$parseRes;\n\n    if (!parseResponse) {\n      return;\n    }\n\n    if (!res || !res.clone) {\n      return;\n    } // 只在浏览器环境对 response 做克隆， node 环境如果对 response 克隆会有问题：https://github.com/bitinn/node-fetch/issues/553\n\n\n    copy = getEnv() === 'BROWSER' ? res.clone() : res;\n    copy.useCache = res.useCache || false; // 解析数据\n\n    if (charset === 'gbk') {\n      try {\n        return res.blob().then(readerGBK).then(function (d) {\n          return safeJsonParse(d, false, copy, req);\n        });\n      } catch (e) {\n        throw new ResponseError(copy, e.message, null, req, 'ParseError');\n      }\n    } else if (responseType === 'json') {\n      return res.text().then(function (d) {\n        return safeJsonParse(d, throwErrIfParseFail, copy, req);\n      });\n    }\n\n    try {\n      // 其他如text, blob, arrayBuffer, formData\n      return res[responseType]();\n    } catch (e) {\n      throw new ResponseError(copy, 'responseType not support', null, req, 'ParseError');\n    }\n  }).then(function (body) {\n    if (!ctx) return;\n    var _ctx$res2 = ctx.res,\n        _ctx$req2 = ctx.req,\n        req = _ctx$req2 === void 0 ? {} : _ctx$req2;\n\n    var _ref2 = req || {},\n        _ref2$options = _ref2.options;\n\n    _ref2$options = _ref2$options === void 0 ? {} : _ref2$options;\n    var _ref2$options$getResp = _ref2$options.getResponse,\n        getResponse = _ref2$options$getResp === void 0 ? false : _ref2$options$getResp;\n\n    if (!copy) {\n      return;\n    }\n\n    if (copy.status >= 200 && copy.status < 300) {\n      // 提供源response, 以便自定义处理\n      if (getResponse) {\n        ctx.res = {\n          data: body,\n          response: copy\n        };\n        return;\n      }\n\n      ctx.res = body;\n      return;\n    }\n\n    throw new ResponseError(copy, 'http error', body, req, 'HttpError');\n  }).catch(function (e) {\n    if (e instanceof RequestError || e instanceof ResponseError) {\n      throw e;\n    } // 对未知错误进行处理\n\n\n    var req = ctx.req,\n        res = ctx.res;\n    e.request = e.request || req;\n    e.response = e.response || res;\n    e.type = e.type || e.name;\n    e.data = e.data || undefined;\n    throw e;\n  });\n}\n\nfunction simplePostMiddleware(ctx, next) {\n  if (!ctx) return next();\n  var _ctx$req = ctx.req;\n  _ctx$req = _ctx$req === void 0 ? {} : _ctx$req;\n  var _ctx$req$options = _ctx$req.options,\n      options = _ctx$req$options === void 0 ? {} : _ctx$req$options;\n  var _options$method = options.method,\n      method = _options$method === void 0 ? 'get' : _options$method;\n\n  if (['post', 'put', 'patch', 'delete'].indexOf(method.toLowerCase()) === -1) {\n    return next();\n  }\n\n  var _options$requestType = options.requestType,\n      requestType = _options$requestType === void 0 ? 'json' : _options$requestType,\n      data = options.data; // 数据使用类axios的新字段data, 避免引用后影响旧代码, 如将body stringify多次\n\n  if (data) {\n    var dataType = Object.prototype.toString.call(data);\n\n    if (dataType === '[object Object]' || dataType === '[object Array]') {\n      if (requestType === 'json') {\n        options.headers = _objectSpread2({\n          Accept: 'application/json',\n          'Content-Type': 'application/json;charset=UTF-8'\n        }, options.headers);\n        options.body = JSON.stringify(data);\n      } else if (requestType === 'form') {\n        options.headers = _objectSpread2({\n          Accept: 'application/json',\n          'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\n        }, options.headers);\n        options.body = reqStringify(data);\n      }\n    } else {\n      // 其他 requestType 自定义header\n      options.headers = _objectSpread2({\n        Accept: 'application/json'\n      }, options.headers);\n      options.body = data;\n    }\n  }\n\n  ctx.req.options = options;\n  return next();\n}\n\nfunction paramsSerialize(params, paramsSerializer) {\n  var serializedParams;\n  var jsonStringifiedParams; // 支持参数自动拼装，其他 method 也可用，不冲突\n\n  if (params) {\n    if (paramsSerializer) {\n      serializedParams = paramsSerializer(params);\n    } else if (isURLSearchParams(params)) {\n      serializedParams = params.toString();\n    } else {\n      if (isArray(params)) {\n        jsonStringifiedParams = [];\n        forEach2ObjArr(params, function (item) {\n          if (item === null || typeof item === 'undefined') {\n            jsonStringifiedParams.push(item);\n          } else {\n            jsonStringifiedParams.push(isObject(item) ? JSON.stringify(item) : item);\n          }\n        }); // a: [1,2,3] => a=1&a=2&a=3\n\n        serializedParams = reqStringify(jsonStringifiedParams);\n      } else {\n        jsonStringifiedParams = {};\n        forEach2ObjArr(params, function (value, key) {\n          var jsonStringifiedValue = value;\n\n          if (value === null || typeof value === 'undefined') {\n            jsonStringifiedParams[key] = value;\n          } else if (isDate(value)) {\n            jsonStringifiedValue = value.toISOString();\n          } else if (isArray(value)) {\n            jsonStringifiedValue = value;\n          } else if (isObject(value)) {\n            jsonStringifiedValue = JSON.stringify(value);\n          }\n\n          jsonStringifiedParams[key] = jsonStringifiedValue;\n        });\n        var tmp = reqStringify(jsonStringifiedParams);\n        serializedParams = tmp;\n      }\n    }\n  }\n\n  return serializedParams;\n} // 对请求参数做处理，实现 query 简化、 post 简化\n\nfunction simpleGetMiddleware(ctx, next) {\n  if (!ctx) return next();\n  var _ctx$req = ctx.req;\n  _ctx$req = _ctx$req === void 0 ? {} : _ctx$req;\n  var _ctx$req$options = _ctx$req.options,\n      options = _ctx$req$options === void 0 ? {} : _ctx$req$options;\n  var paramsSerializer = options.paramsSerializer,\n      params = options.params;\n  var _ctx$req2 = ctx.req;\n  _ctx$req2 = _ctx$req2 === void 0 ? {} : _ctx$req2;\n  var _ctx$req2$url = _ctx$req2.url,\n      url = _ctx$req2$url === void 0 ? '' : _ctx$req2$url; // 将 method 改为大写\n\n  options.method = options.method ? options.method.toUpperCase() : 'GET'; // 设置 credentials 默认值为 same-origin，确保当开发者没有设置时，各浏览器对请求是否发送 cookies 保持一致的行为\n  // - omit: 从不发送cookies.\n  // - same-origin: 只有当URL与响应脚本同源才发送 cookies、 HTTP Basic authentication 等验证信息.(浏览器默认值,在旧版本浏览器，例如safari 11依旧是omit，safari 12已更改)\n  // - include: 不论是不是跨域的请求,总是发送请求资源域在本地的 cookies、 HTTP Basic authentication 等验证信息.\n\n  options.credentials = options.credentials || 'same-origin'; // 支持类似axios 参数自动拼装, 其他method也可用, 不冲突.\n\n  var serializedParams = paramsSerialize(params, paramsSerializer);\n  ctx.req.originUrl = url;\n\n  if (serializedParams) {\n    var urlSign = url.indexOf('?') !== -1 ? '&' : '?';\n    ctx.req.url = \"\".concat(url).concat(urlSign).concat(serializedParams);\n  }\n\n  ctx.req.options = options;\n  return next();\n}\n\nvar globalMiddlewares = [simplePostMiddleware, simpleGetMiddleware, parseResponseMiddleware];\nvar coreMiddlewares = [fetchMiddleware];\nOnion.globalMiddlewares = globalMiddlewares;\nOnion.defaultGlobalMiddlewaresLength = globalMiddlewares.length;\nOnion.coreMiddlewares = coreMiddlewares;\nOnion.defaultCoreMiddlewaresLength = coreMiddlewares.length;\n\nvar Core = /*#__PURE__*/function () {\n  function Core(initOptions) {\n    _classCallCheck(this, Core);\n\n    this.onion = new Onion([]);\n    this.fetchIndex = 0; // 【即将废弃】请求中间件位置\n\n    this.mapCache = new MapCache(initOptions);\n    this.initOptions = initOptions;\n    this.instanceRequestInterceptors = [];\n    this.instanceResponseInterceptors = [];\n  } // 旧版拦截器为共享\n\n\n  _createClass(Core, [{\n    key: \"use\",\n    value: function use(newMiddleware) {\n      var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        global: false,\n        core: false\n      };\n      this.onion.use(newMiddleware, opt);\n      return this;\n    }\n  }, {\n    key: \"extendOptions\",\n    value: function extendOptions(options) {\n      this.initOptions = mergeRequestOptions(this.initOptions, options);\n      this.mapCache.extendOptions(options);\n    } // 执行请求前拦截器\n\n  }, {\n    key: \"dealRequestInterceptors\",\n    value: function dealRequestInterceptors(ctx) {\n      var reducer = function reducer(p1, p2) {\n        return p1.then(function () {\n          var ret = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n          ctx.req.url = ret.url || ctx.req.url;\n          ctx.req.options = ret.options || ctx.req.options;\n          return p2(ctx.req.url, ctx.req.options);\n        });\n      };\n\n      var allInterceptors = [].concat(_toConsumableArray(Core.requestInterceptors), _toConsumableArray(this.instanceRequestInterceptors));\n      return allInterceptors.reduce(reducer, Promise.resolve()).then(function () {\n        var ret = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n        ctx.req.url = ret.url || ctx.req.url;\n        ctx.req.options = ret.options || ctx.req.options;\n        return Promise.resolve();\n      });\n    }\n  }, {\n    key: \"request\",\n    value: function request(url, options) {\n      var _this = this;\n\n      var onion = this.onion;\n      var obj = {\n        req: {\n          url: url,\n          options: _objectSpread2(_objectSpread2({}, options), {}, {\n            url: url\n          })\n        },\n        res: null,\n        cache: this.mapCache,\n        responseInterceptors: [].concat(_toConsumableArray(Core.responseInterceptors), _toConsumableArray(this.instanceResponseInterceptors))\n      };\n\n      if (typeof url !== 'string') {\n        throw new Error('url MUST be a string');\n      }\n\n      return new Promise(function (resolve, reject) {\n        _this.dealRequestInterceptors(obj).then(function () {\n          return onion.execute(obj);\n        }).then(function () {\n          resolve(obj.res);\n        }).catch(function (error) {\n          var errorHandler = obj.req.options.errorHandler;\n\n          if (errorHandler) {\n            try {\n              var data = errorHandler(error);\n              resolve(data);\n            } catch (e) {\n              reject(e);\n            }\n          } else {\n            reject(error);\n          }\n        });\n      });\n    }\n  }], [{\n    key: \"requestUse\",\n    value: // 请求拦截器 默认 { global: true } 兼容旧版本拦截器\n    function requestUse(handler) {\n      var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        global: true\n      };\n      if (typeof handler !== 'function') throw new TypeError('Interceptor must be function!');\n\n      if (opt.global) {\n        Core.requestInterceptors.push(handler);\n      } else {\n        this.instanceRequestInterceptors.push(handler);\n      }\n    } // 响应拦截器 默认 { global: true } 兼容旧版本拦截器\n\n  }, {\n    key: \"responseUse\",\n    value: function responseUse(handler) {\n      var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        global: true\n      };\n      if (typeof handler !== 'function') throw new TypeError('Interceptor must be function!');\n\n      if (opt.global) {\n        Core.responseInterceptors.push(handler);\n      } else {\n        this.instanceResponseInterceptors.push(handler);\n      }\n    }\n  }]);\n\n  return Core;\n}();\n\nCore.requestInterceptors = [addfix];\nCore.responseInterceptors = [];\n\n/**\n * 当执行 “取消请求” 操作时会抛出 Cancel 对象作为一场\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return this.message ? \"Cancel: \".concat(this.message) : 'Cancel';\n};\n\nCancel.prototype.__CANCEL__ = true;\n\n/**\n * 通过 CancelToken 来取消请求操作\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // 取消操作已被调用过\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n/**\n * 如果请求已经取消，抛出 Cancel 异常\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n/**\n * 通过 source 来返回 CancelToken 实例和取消 CancelToken 的函数\n */\n\n\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nfunction isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n\nvar request = function request() {\n  var initOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var coreInstance = new Core(initOptions);\n\n  var umiInstance = function umiInstance(url) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var mergeOptions = mergeRequestOptions(coreInstance.initOptions, options);\n    return coreInstance.request(url, mergeOptions);\n  }; // 中间件\n\n\n  umiInstance.use = coreInstance.use.bind(coreInstance);\n  umiInstance.fetchIndex = coreInstance.fetchIndex; // 拦截器\n\n  umiInstance.interceptors = {\n    request: {\n      use: Core.requestUse.bind(coreInstance)\n    },\n    response: {\n      use: Core.responseUse.bind(coreInstance)\n    }\n  }; // 请求语法糖： reguest.get request.post ……\n\n  var METHODS = ['get', 'post', 'delete', 'put', 'patch', 'head', 'options', 'rpc'];\n  METHODS.forEach(function (method) {\n    umiInstance[method] = function (url, options) {\n      return umiInstance(url, _objectSpread2(_objectSpread2({}, options), {}, {\n        method: method\n      }));\n    };\n  });\n  umiInstance.Cancel = Cancel;\n  umiInstance.CancelToken = CancelToken;\n  umiInstance.isCancel = isCancel;\n  umiInstance.extendOptions = coreInstance.extendOptions.bind(coreInstance); // 暴露各个实例的中间件，供开发者自由组合\n\n  umiInstance.middlewares = {\n    instance: coreInstance.onion.middlewares,\n    defaultInstance: coreInstance.onion.defaultMiddlewares,\n    global: Onion.globalMiddlewares,\n    core: Onion.coreMiddlewares\n  };\n  return umiInstance;\n};\n/**\n * extend 方法参考了ky, 让用户可以定制配置.\n * initOpions 初始化参数\n * @param {number} maxCache 最大缓存数\n * @param {string} prefix url前缀\n * @param {function} errorHandler 统一错误处理方法\n * @param {object} headers 统一的headers\n */\n\n\nvar extend = function extend(initOptions) {\n  return request(initOptions);\n};\n/**\n * 暴露 fetch 中间件，保障依旧可以使用\n */\n\nvar fetch$1 = request({\n  parseResponse: false\n});\nvar request$1 = request({});\n\nexports.Onion = Onion;\nexports.RequestError = RequestError;\nexports.ResponseError = ResponseError;\nexports.default = request$1;\nexports.extend = extend;\nexports.fetch = fetch$1;\n"]}