@generouted/solid-router
Version:
Generated file-based routes for Solid Router and Vite
102 lines (100 loc) • 3.04 kB
JavaScript
import {
generateModalRoutes,
generatePreservedRoutes,
generateRegularRoutes
} from "./chunk-UKDIJ4XC.js";
// ../generouted/src/solid-router.tsx
import { createComponent as _$createComponent } from "solid-js/web";
import { createMemo, ErrorBoundary, 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/**/_*/**"], {
eager: true
});
var preservedRoutes = generatePreservedRoutes(PRESERVED);
var modalRoutes = generateModalRoutes(MODALS);
var regularRoutes = generateRegularRoutes(ROUTES, (mod) => {
const Default2 = mod?.default || Fragment;
const Page = (props) => mod?.Pending ? _$createComponent(Suspense, {
get fallback() {
return _$createComponent(mod.Pending, {});
},
get children() {
return _$createComponent(Default2, props);
}
}) : _$createComponent(Default2, props);
const Component = (props) => mod?.Catch ? _$createComponent(ErrorBoundary, {
fallback: (error, reset) => mod.Catch?.({
error,
reset
}),
get children() {
return _$createComponent(Page, props);
}
}) : _$createComponent(Page, props);
return {
component: Component,
load: mod?.Loader || 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
};