vuestic-ui
Version:
Vue 3 UI Framework
1 lines • 1.65 kB
Source Map (JSON)
{"version":3,"file":"useAppGlobal.mjs","sources":["../../../../src/composables/useAppGlobal.ts"],"sourcesContent":["import { WritableComputedRef, computed, getCurrentInstance, reactive } from 'vue'\n\nconst getGlobalObject = () => {\n const vm = getCurrentInstance()\n\n const app = vm?.appContext.app\n\n const { globalProperties } = app!.config\n\n if ('$vaGlobalVariable' in globalProperties) {\n return globalProperties.$vaGlobalVariable\n }\n\n globalProperties.$vaGlobalVariable = reactive({})\n\n return globalProperties.$vaGlobalVariable\n}\n\n/**\n * This composable must be used to make global variables. This global is shared in app context, rather then\n * in window context. This is useful to avoid global variables in window context in multiple app mode, ssr\n * or cjs build can mess up global variables\n */\nexport const useAppGlobal = <T>(key: string, defaultValue: T): WritableComputedRef<T> => {\n const globalObject = getGlobalObject()\n\n if (!(key in globalObject)) {\n globalObject[key] = defaultValue\n }\n\n return computed({\n get: () => globalObject[key],\n set: (value: T) => {\n globalObject[key] = value\n },\n })\n}\n"],"names":[],"mappings":";AAEA,MAAM,kBAAkB,MAAM;AAC5B,QAAM,KAAK;AAEL,QAAA,MAAM,yBAAI,WAAW;AAErB,QAAA,EAAE,iBAAiB,IAAI,IAAK;AAElC,MAAI,uBAAuB,kBAAkB;AAC3C,WAAO,iBAAiB;AAAA,EAC1B;AAEiB,mBAAA,oBAAoB,SAAS,CAAA,CAAE;AAEhD,SAAO,iBAAiB;AAC1B;AAOa,MAAA,eAAe,CAAI,KAAa,iBAA4C;AACvF,QAAM,eAAe;AAEjB,MAAA,EAAE,OAAO,eAAe;AAC1B,iBAAa,GAAG,IAAI;AAAA,EACtB;AAEA,SAAO,SAAS;AAAA,IACd,KAAK,MAAM,aAAa,GAAG;AAAA,IAC3B,KAAK,CAAC,UAAa;AACjB,mBAAa,GAAG,IAAI;AAAA,IACtB;AAAA,EAAA,CACD;AACH;"}