'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
var _createClass = require('@babel/runtime/helpers/createClass');

function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);

/**
 * pmd-network 的 Cocos 兼容实现（搬迁自原 src/_shim/pmd-network.ts）
 *
 * - 仅运行于微信小游戏环境
 * - 业务方在启动时必须调用 `initCocosNetwork(...)`（推荐）或
 *   `NetworkManager.instance.setRequestImpl(impl)` 注入网络实现
 *
 * 与原 @tencent/pmd-network 保持以下两个公共 API 兼容：
 *   - NetworkManager.instance.request(cfg)
 *   - post(cfg)
 *
 * 仓库内通过 tsconfig paths 把 '@tencent/pmd-network' 别名映射到本文件，
 * 这样上游 sync 下来的 src/api.ts 中的 import 路径无需改动即可编译。
 */
var NetworkManager = /*#__PURE__*/function () {
  function NetworkManager() {
    _classCallCheck__default["default"](this, NetworkManager);
    this._impl = null;
  }
  return _createClass__default["default"](NetworkManager, [{
    key: "setRequestImpl",
    value: /** 业务侧注入自定义网络实现 */
    function setRequestImpl(impl) {
      this._impl = impl;
    }
  }, {
    key: "request",
    value: function request(cfg) {
      if (!this._impl) {
        return Promise.reject(new Error('[pmd-api-cocos] NetworkManager 尚未初始化，' + '请在应用启动时调用 initCocosNetwork(...) 或 ' + 'NetworkManager.instance.setRequestImpl(...) 注入网络实现'));
      }
      return this._impl(cfg);
    }
  }], [{
    key: "instance",
    get: function get() {
      if (!NetworkManager._instance) {
        NetworkManager._instance = new NetworkManager();
      }
      return NetworkManager._instance;
    }
  }]);
}();
function post(cfg) {
  return NetworkManager.instance.request(cfg);
}

exports.NetworkManager = NetworkManager;
exports.post = post;
