@vuepress-reco/style-default
Version:
It is default type of vuepress-theme-reco.
29 lines (28 loc) • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useResolveRouteWithRedirect = void 0;
const vue_router_1 = require("vue-router");
const shared_1 = require("@vuepress/shared");
/**
* Resolve a route with redirection
*/
const useResolveRouteWithRedirect = (...args) => {
const router = vue_router_1.useRouter();
const route = router.resolve(...args);
const lastMatched = route.matched[route.matched.length - 1];
if (!(lastMatched === null || lastMatched === void 0 ? void 0 : lastMatched.redirect)) {
return route;
}
const { redirect } = lastMatched;
const resolvedRedirect = shared_1.isFunction(redirect) ? redirect(route) : redirect;
const resolvedRedirectObj = shared_1.isString(resolvedRedirect)
? { path: resolvedRedirect }
: resolvedRedirect;
return exports.useResolveRouteWithRedirect({
hash: route.hash,
query: route.query,
params: route.params,
...resolvedRedirectObj,
});
};
exports.useResolveRouteWithRedirect = useResolveRouteWithRedirect;