@orca-fe/hooks
Version:
React Hooks Collections
41 lines (39 loc) • 1.28 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.registerGlobal = registerGlobal;
exports.unregisterGlobal = unregisterGlobal;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
/**
* 将 value 注册到 window 上,如果 window 中不存在该内容,则将 value 挂载上去,否则直接使用该内容
*/
function registerGlobal(key, value) {
if (!key || value === undefined) throw new Error('registerGlobal: key or value is empty.');
if (window[key] === undefined) {
// 新增
window[key] = value;
return value;
}
// 已存在内容
var originValue = window[key];
if ((0, _typeof2.default)(originValue) === (0, _typeof2.default)(value)) {
return originValue;
}
throw new Error("Global key ".concat(key.toString(), " conflict! Please check your value type"));
}
/**
* 取消注册内容
* @param key
* @param value
*/
function unregisterGlobal(key, value) {
if (!key || value === undefined) return false;
if (window[key] === value) {
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete window[key];
return true;
}
return false;
}