@generouted/react-router
Version:
Generated file-based routes for React Router and Vite
56 lines (54 loc) • 2.57 kB
JavaScript
import {
generateModalRoutes,
generatePreservedRoutes,
generateRegularRoutes
} from "./chunk-KTUHCRP5.js";
import "./chunk-DZAGGWNQ.js";
// ../generouted/src/react-router.tsx
import { Fragment, Suspense } from "react";
import { createBrowserRouter, Outlet, RouterProvider, useLocation } from "react-router";
import { Fragment as Fragment2, jsx, jsxs } from "react/jsx-runtime";
var PRESERVED = import.meta.glob("/src/pages/{_app,404}.{jsx,tsx}", { eager: true });
var MODALS = import.meta.glob("/src/pages/**/[+]*.{jsx,tsx}", { eager: true });
var ROUTES = import.meta.glob(
[
"/src/pages/**/[A-Za-z0-9[-]*.{jsx,tsx,mdx}",
"/src/pages/**/_layout.{jsx,tsx,mdx}",
"!/src/pages/404.{jsx,tsx,mdx}",
"!/src/pages/**/_*/**"
],
{ eager: true }
);
var preservedRoutes = generatePreservedRoutes(PRESERVED);
var modalRoutes = generateModalRoutes(MODALS);
var regularRoutes = generateRegularRoutes(ROUTES, (module, key) => {
const index = /index\.(jsx|tsx|mdx)$/.test(key) && !key.includes("pages/index") ? { index: true } : {};
const Default2 = module?.default || Fragment;
const Page = () => module?.Pending ? /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(module.Pending, {}), children: /* @__PURE__ */ jsx(Default2, {}) }) : /* @__PURE__ */ jsx(Default2, {});
return { ...index, Component: Page, ErrorBoundary: module?.Catch, loader: module?.Loader, action: module?.Action };
});
var _app = preservedRoutes?.["_app"];
var _404 = preservedRoutes?.["404"];
var Default = _app?.default || Outlet;
var Modals_ = () => {
const Modal = modalRoutes[useLocation().state?.modal] || Fragment;
return /* @__PURE__ */ jsx(Modal, {});
};
var Layout = () => /* @__PURE__ */ jsxs(Fragment2, { children: [
/* @__PURE__ */ jsx(Default, {}),
" ",
/* @__PURE__ */ jsx(Modals_, {})
] });
var App = () => _app?.Pending ? /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(_app.Pending, {}), children: /* @__PURE__ */ jsx(Layout, {}) }) : /* @__PURE__ */ jsx(Layout, {});
var app = { Component: _app?.default ? App : Layout, ErrorBoundary: _app?.Catch, loader: _app?.Loader };
var fallback = { path: "*", Component: _404?.default || Fragment };
var routes = [{ ...app, children: [...regularRoutes, fallback] }];
var router;
var createRouter = () => (router ??= createBrowserRouter(routes), router);
var Routes = () => /* @__PURE__ */ jsx(RouterProvider, { router: createRouter() });
var Modals = () => (console.warn("[generouted] `<Modals />` will be removed in future releases"), null);
export {
Modals,
Routes,
routes
};