UNPKG

weapp-vite

Version:

weapp-vite 一个现代化的小程序打包工具

63 lines (62 loc) 2.04 kB
import { n as getCompilerContext, v as getRouteRuntimeGlobalKeys } from "./createContext-D9HCnUmH.mjs"; //#region src/auto-routes.ts const ROUTE_RUNTIME_OVERRIDE_KEY = Symbol.for("weapp-vite.route-runtime"); function createGetter(resolver) { return { configurable: false, enumerable: true, get: resolver }; } const service = getCompilerContext().autoRoutesService; const routes = {}; Object.defineProperties(routes, { pages: createGetter(() => { return service?.getReference().pages ?? []; }), entries: createGetter(() => { return service?.getReference().entries ?? []; }), subPackages: createGetter(() => { return service?.getReference().subPackages ?? []; }) }); const pages = routes.pages; const entries = routes.entries; const subPackages = routes.subPackages; function resolveMiniProgramGlobal() { const runtime = globalThis; const overrideRuntime = runtime[ROUTE_RUNTIME_OVERRIDE_KEY]; if (overrideRuntime) return overrideRuntime; for (const key of getRouteRuntimeGlobalKeys()) { const candidate = runtime[key]; if (candidate) return candidate; } } function callRouteMethod(methodName, option) { const miniProgramGlobal = resolveMiniProgramGlobal(); const routeMethod = miniProgramGlobal?.[methodName]; if (typeof routeMethod !== "function") throw new TypeError(`[weapp-vite] 当前运行环境不支持路由方法: ${methodName}`); if (option === void 0) return routeMethod.call(miniProgramGlobal); return routeMethod.call(miniProgramGlobal, option); } const miniProgramRouter = { switchTab(option) { return callRouteMethod("switchTab", option); }, reLaunch(option) { return callRouteMethod("reLaunch", option); }, redirectTo(option) { return callRouteMethod("redirectTo", option); }, navigateTo(option) { return callRouteMethod("navigateTo", option); }, navigateBack(option) { return callRouteMethod("navigateBack", option); } }; const wxRouter = miniProgramRouter; //#endregion export { routes as default, routes, entries, miniProgramRouter, pages, subPackages, wxRouter };