/** * shims/vue-router.ts —— 'vue-router' 模块名 → UMD 全局 VueRouter 的唯一胶水层(README §3.3-1)。 * * 存在理由:SFC 模板编译器(@vitejs/plugin-vue)产物内部会生成 * 'import { X } from "vue-router"' 这类模块名 import,vite define 无法改写模块名(只处理裸标识符), * 故 vite.config 的 alias 将 'vue-router' 重定向到本文件。 * * 关键实现(保证 dist 不含框架运行时): * - import type 仅取 ESM 命名空间类型(编译期擦除,不进产物); * - 运行时值全部取自 globalThis.VueRouter(index.html 引入的 UMD 全局); * - 编译后只剩"取全局 + 转发"代码,框架本体不进 dist。 * * 本文件由 scripts/gen-shims.cjs 生成(导出清单来自当前安装版本,跳过 ESM 类型未声明的 SSR/compat 边缘键); * 框架升级(README §1.5 五步流程)时须重新生成并按 typecheck 报错维护排除清单。 * 纪律:shims/ 是全项目唯一允许出现框架模块名的目录。 */ import type * as VUEROUTER_NS from 'vue-router'; /** 运行时框架全局(index.html 按序注入;经 unknown 收窄为 ESM 命名空间类型) */ const V: typeof VUEROUTER_NS = (globalThis as unknown as { VueRouter: typeof VUEROUTER_NS }).VueRouter; // eslint-disable-next-line import/no-mutable-exports export const NavigationFailureType = V.NavigationFailureType; // eslint-disable-next-line import/no-mutable-exports export const RouterLink = V.RouterLink; // eslint-disable-next-line import/no-mutable-exports export const RouterView = V.RouterView; // eslint-disable-next-line import/no-mutable-exports export const START_LOCATION = V.START_LOCATION; // eslint-disable-next-line import/no-mutable-exports export const createMemoryHistory = V.createMemoryHistory; // eslint-disable-next-line import/no-mutable-exports export const createRouter = V.createRouter; // eslint-disable-next-line import/no-mutable-exports export const createRouterMatcher = V.createRouterMatcher; // eslint-disable-next-line import/no-mutable-exports export const createWebHashHistory = V.createWebHashHistory; // eslint-disable-next-line import/no-mutable-exports export const createWebHistory = V.createWebHistory; // eslint-disable-next-line import/no-mutable-exports export const isNavigationFailure = V.isNavigationFailure; // eslint-disable-next-line import/no-mutable-exports export const loadRouteLocation = V.loadRouteLocation; // eslint-disable-next-line import/no-mutable-exports export const matchedRouteKey = V.matchedRouteKey; // eslint-disable-next-line import/no-mutable-exports export const onBeforeRouteLeave = V.onBeforeRouteLeave; // eslint-disable-next-line import/no-mutable-exports export const onBeforeRouteUpdate = V.onBeforeRouteUpdate; // eslint-disable-next-line import/no-mutable-exports export const parseQuery = V.parseQuery; // eslint-disable-next-line import/no-mutable-exports export const routeLocationKey = V.routeLocationKey; // eslint-disable-next-line import/no-mutable-exports export const routerKey = V.routerKey; // eslint-disable-next-line import/no-mutable-exports export const routerViewLocationKey = V.routerViewLocationKey; // eslint-disable-next-line import/no-mutable-exports export const stringifyQuery = V.stringifyQuery; // eslint-disable-next-line import/no-mutable-exports export const useLink = V.useLink; // eslint-disable-next-line import/no-mutable-exports export const useRoute = V.useRoute; // eslint-disable-next-line import/no-mutable-exports export const useRouter = V.useRouter; // eslint-disable-next-line import/no-mutable-exports export const viewDepthKey = V.viewDepthKey;