import { ref, Ref, watch } from "vue"; import get from "./get"; import getSession from "./get_session"; import put from "./put"; import putSession from "./put_session"; export function localRef( key: string, defaultValue: T, session: boolean = false ): Ref { let myValue = (session ? getSession(key) : get(key)) as T | undefined; const value = ref(myValue ?? defaultValue); watch( value, (newVal) => { if (session) { putSession(key, newVal); } else { put(key, newVal); } }, { deep: true } ); return value as Ref; }