@generouted/react-router
Version:
Generated file-based routes for React Router and Vite
64 lines (62 loc) • 2.72 kB
JavaScript
import {
generateModalRoutes,
generatePreservedRoutes,
generateRegularRoutes
} from "./chunk-KTUHCRP5.js";
import "./chunk-DZAGGWNQ.js";
// ../generouted/src/react-router-lazy.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/**/_*/**"
]);
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 } : {};
return {
...index,
lazy: async () => {
const Default2 = (await module())?.default || Fragment;
const Pending = (await module())?.Pending;
const Page = () => Pending ? /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Pending, {}), children: /* @__PURE__ */ jsx(Default2, {}) }) : /* @__PURE__ */ jsx(Default2, {});
return {
Component: Page,
ErrorBoundary: (await module())?.Catch,
loader: (await module())?.Loader,
action: (await 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
};