routie dev init since i didn't adhere to any proper guidance up until now

This commit is contained in:
2026-04-29 22:27:29 -06:00
commit e1dabb71e2
15301 changed files with 3562618 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
// Utilities
import { onBeforeUnmount, onMounted, ref, watch } from 'vue';
import { refElement } from "../util/index.js"; // Types
export function useMutationObserver(handler, options) {
const mutationRef = ref();
const {
once,
immediate,
...optionKeys
} = options || {};
const defaultValue = !Object.keys(optionKeys).length;
const observer = new MutationObserver((mutations, observer) => {
handler?.(mutations, observer);
if (options?.once) observer.disconnect();
});
onMounted(() => {
if (!options?.immediate) return;
handler?.([], observer);
});
onBeforeUnmount(() => {
observer.disconnect();
});
watch(mutationRef, (newValue, oldValue) => {
if (oldValue) observer.disconnect();
const el = refElement(newValue);
if (!el) return;
observer.observe(el, {
attributes: options?.attr ?? defaultValue,
characterData: options?.char ?? defaultValue,
childList: options?.child ?? defaultValue,
subtree: options?.sub ?? defaultValue
});
}, {
flush: 'post'
});
return {
mutationRef
};
}
//# sourceMappingURL=mutationObserver.js.map