UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

76 lines (74 loc) 2.83 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var sitemap_exports = {}; __export(sitemap_exports, { getSitemap: () => getSitemap, useSitemap: () => useSitemap }); module.exports = __toCommonJS(sitemap_exports); var import_react = require("react"); var import_matchers = require("./matchers.native.js"); var import_router = require("./router.native.js"); var import_sortRoutes = require("./sortRoutes.native.js"); function useSitemap() { return (0, import_react.useMemo)(function () { return getSitemap(import_router.routeNode); }, [import_router.routeNode]); } function getSitemap(root) { return root ? mapRouteToSitemap(root, []) : null; } function mapRouteToSitemap(route, parents) { var _route_internal, _route_generated; return { contextKey: route.contextKey, filename: getRouteFilename(route), href: getRouteHref(route, parents), isInitial: route.initialRouteName === route.route, isInternal: (_route_internal = route.internal) !== null && _route_internal !== void 0 ? _route_internal : false, isGenerated: (_route_generated = route.generated) !== null && _route_generated !== void 0 ? _route_generated : false, children: [...route.children].sort(import_sortRoutes.sortRoutes).map(function (child) { return mapRouteToSitemap(child, getRouteSegments(route, parents)); }) }; } function getRouteSegments(route, parents) { return [...parents, ...route.route.split("/")]; } function getRouteHref(route, parents) { var path = getRouteSegments(route, parents).map(function (segment) { return segment === "index" ? "" : segment; }).filter(Boolean).join("/"); return `/${path}`; } function getRouteFilename(route) { var contextKey = (0, import_matchers.removeSupportedExtensions)(route.contextKey); var segments = contextKey.split("/"); if (route.contextKey.match(/_layout\.[jt]sx?$/)) { return segments.slice(-2).join("/"); } var routeSegmentsCount = route.route.split("/").length; return segments.slice(-routeSegmentsCount).join("/"); } //# sourceMappingURL=sitemap.native.js.map