vue-hooks-plus
Version:
Vue hooks library
30 lines (29 loc) • 799 B
JavaScript
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const listeners = {};
const otherListeners = [];
const trigger = (key, data) => {
if (listeners[key]) {
listeners[key].forEach((item) => item(data));
otherListeners.forEach((item) => item({
type: key,
data
}));
}
};
const subscribe = (key, listener) => {
if (!listeners[key]) {
listeners[key] = [];
}
listeners[key].push(listener);
return function unsubscribe() {
const index = listeners[key].indexOf(listener);
listeners[key].splice(index, 1);
};
};
const otherSubscribe = (listener) => {
otherListeners.push(listener);
};
exports.otherSubscribe = otherSubscribe;
exports.subscribe = subscribe;
exports.trigger = trigger;
;