@generouted/solid-router
Version:
Generated file-based routes for Solid Router and Vite
106 lines (104 loc) • 3.18 kB
JavaScript
import {
generateModalRoutes,
generatePreservedRoutes,
generateRegularRoutes
} from "./chunk-UKDIJ4XC.js";
// ../generouted/src/solid-router-lazy.tsx
import { createComponent as _$createComponent } from "solid-js/web";
import { createMemo, ErrorBoundary, lazy, Show, Suspense } from "solid-js";
import { Router, useLocation } from "@solidjs/router";
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) => {
const Default2 = lazy(module);
const Pending2 = lazy(() => module().then((module2) => ({
default: module2?.Pending || Fragment
})));
const Catch2 = lazy(() => module().then((module2) => ({
default: module2?.Catch || Fragment
})));
const Page = (props) => _$createComponent(Suspense, {
get fallback() {
return _$createComponent(Pending2, {});
},
get children() {
return _$createComponent(Default2, props);
}
});
const Component = (props) => _$createComponent(ErrorBoundary, {
fallback: (error, reset) => Catch2({
error,
reset
}),
get children() {
return _$createComponent(Page, props);
}
});
return {
component: Component,
load: (args) => module().then((mod) => mod?.Loader?.(args) || void 0)
};
});
var _app = preservedRoutes?.["_app"];
var _404 = preservedRoutes?.["404"];
var Fragment = (props) => props?.children;
var Default = _app?.default || Fragment;
var Pending = _app?.Pending || Fragment;
var Catch = preservedRoutes?.["_app"]?.Catch;
var Modals_ = () => createMemo(() => modalRoutes[useLocation().state?.modal || ""] || Fragment);
var Layout = (props) => [_$createComponent(Default, props), " ", _$createComponent(Modals_, {})];
var App = (props) => _$createComponent(ErrorBoundary, {
fallback: (error, reset) => Catch?.({
error,
reset
}),
get children() {
return _$createComponent(Show, {
get when() {
return _app?.Pending;
},
get fallback() {
return _$createComponent(Layout, props);
},
get children() {
return _$createComponent(Suspense, {
get fallback() {
return _$createComponent(Pending, {});
},
get children() {
return _$createComponent(Layout, props);
}
});
}
});
}
});
var app = {
path: "",
component: _app?.default ? App : Layout,
load: _app?.Loader || void 0
};
var fallback = {
path: "*",
component: _404?.default || Fragment
};
var routes = [{
...app,
children: [...regularRoutes, fallback]
}];
var Routes = () => _$createComponent(Router, {
children: routes
});
var Modals = () => (console.warn("[generouted] `<Modals />` will be removed in future releases"), null);
export {
Modals,
Routes,
routes
};