@esmx/router-vue
Version:
Vue integration for @esmx/router - A universal router that works seamlessly with both Vue 2.7+ and Vue 3
33 lines (32 loc) • 855 B
JavaScript
import { version } from "vue";
export const isVue3 = version.startsWith("3.");
export function createSymbolProperty(symbol) {
return {
set(instance, value) {
instance[symbol] = value;
},
get(instance) {
return symbol in instance ? instance[symbol] : void 0;
}
};
}
export function createDependentProxy(obj, dep) {
return new Proxy(obj, {
get(target, prop, receiver) {
dep.value;
return Reflect.get(target, prop, receiver);
}
});
}
export function isESModule(obj) {
if (!obj || typeof obj !== "object") return false;
const module = obj;
return Boolean(module.__esModule) || module[Symbol.toStringTag] === "Module";
}
export function resolveComponent(component) {
if (!component) return null;
if (isESModule(component)) {
return component.default || component;
}
return component;
}