@master/css-devtools-hook
Version:
Devtools hook for Master CSS
24 lines (21 loc) • 690 B
JavaScript
const devToolsHook = {
listeners: new Map(),
on (event, callback) {
if (!this.listeners.has(event)) {
this.listeners.set(event, new Set());
}
this.listeners.get(event)?.add(callback);
},
off (event, callback) {
this.listeners.get(event)?.delete(callback);
},
emit (event, ...args) {
this.listeners.get(event)?.forEach((listener)=>listener(...args));
}
};
function installHook(global = globalThis) {
const hook = global.__MASTER_CSS_DEVTOOLS_HOOK__;
if (hook) return hook;
return global.__MASTER_CSS_DEVTOOLS_HOOK__ = devToolsHook;
}
export { devToolsHook as default, devToolsHook, installHook };