| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /**
- * 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;
|