t-comm
Version:
专业、稳定、纯粹的工具库
52 lines (49 loc) • 1.74 kB
JavaScript
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
import _createClass from '@babel/runtime/helpers/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(this, NetworkManager);
this._impl = null;
}
return _createClass(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);
}
export { NetworkManager, post };