anchor/dist/anchor.js

30 lines
782 B
JavaScript

function Anchor(opts = {}) {
const NAMESPACE = `_${Math.random().toString(36).slice(-6)}_`.toUpperCase();
const GLOBAL = opts.global || {};
const register = function register(key, value) {
if (GLOBAL[NAMESPACE] && !GLOBAL[NAMESPACE][key]) {
return GLOBAL[NAMESPACE][key] = value;
}
return false;
}.bind(GLOBAL[NAMESPACE]);
function build(opts, register) {
if (GLOBAL[NAMESPACE]) {
return false;
}
GLOBAL[NAMESPACE] = opts.register || {};
GLOBAL[NAMESPACE]['register'] = register;
(opts.mixins || []).forEach((mixin) => Object.assign(GLOBAL[NAMESPACE], mixin));
return GLOBAL[NAMESPACE];
}
return build(opts || {}, register);
}
export default Anchor;