UNPKG

@sandlada/vue-mdc

Version:

![Vue MDC Logo](https://raw.githubusercontent.com/sandlada/vue-mdc/refs/heads/main/docs/vue-mdc-cover.png)

45 lines (44 loc) 920 B
import { watch } from "vue"; function useObserveProps(propMap) { let map = /* @__PURE__ */ new Map(); const observe = (prop) => { if (map.has(prop.id)) { return; } const watchHandle = watch(prop.property, prop.callback, { ...prop.options }); map.set(prop.id, { callback: prop.callback, options: prop.options, property: prop.property, watchHandle }); }; const unobserve = (propId) => { if (map.has(propId)) { return; } const target = map.get(propId); target.watchHandle.stop(); }; const unobseveAll = () => { if (map.size === 0) { return; } map.forEach((value) => { value.watchHandle.stop(); }); map.clear(); }; propMap.forEach((value) => { observe(value); }); return { observe, unobserve, unobseveAll }; } export { useObserveProps }; //# sourceMappingURL=observe-props.js.map