@aliretail/react-utils
Version:
97 lines (69 loc) • 1.97 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _env = _interopRequireDefault(require("./env"));
var _console = _interopRequireDefault(require("./console"));
var ApiMap = /*#__PURE__*/function () {
function ApiMap(apimaps) {
var _this = this;
if (apimaps === void 0) {
apimaps = {};
}
this.apicfg = {};
this.init = function (cfg) {
if (cfg === void 0) {
cfg = {};
}
Object.assign(_this.apicfg, cfg);
if ('base' in _this.apicfg) {
for (var _key in _this.apicfg) {
if (_key !== 'base') {
_this.extendConfig(_key);
}
}
}
};
this.getApiCfg = function () {
var cfg = _this.apicfg[_this.getEnv()];
if (!cfg && _this.apicfg.base) {
return _this.apicfg.base;
}
return cfg;
};
this.setEnv = function (newEnv) {
_env["default"].set(newEnv);
};
this.init(apimaps);
}
var _proto = ApiMap.prototype;
_proto.extendConfig = function extendConfig(key) {
this.apicfg[key] = Object.assign({}, this.apicfg.base, this.apicfg[key]);
};
_proto.getUrl = function getUrl(api) {
var cfg = this.getApiCfg();
if (cfg && cfg[api]) {
var apiurl = cfg[api];
if (this.isURL(apiurl)) {
return apiurl;
} else if (cfg._HOST) {
return cfg._HOST + apiurl;
}
return apiurl;
}
_console["default"].warn('apimap:%s not found in ENV:%s', api, this.getEnv());
return null;
};
_proto.isURL = function isURL(url) {
return /^\s*(http(s)?:\/\/|\/\/)/i.test(url);
};
_proto.isLocalEnv = function isLocalEnv() {
return _env["default"].isLocal();
};
_proto.getEnv = function getEnv() {
return _env["default"].get();
};
return ApiMap;
}();
var _default = ApiMap;
exports["default"] = _default;