@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
30 lines (29 loc) • 1.03 kB
JavaScript
import { isModuleNotFoundError } from "@tanstack/router-core";
import { lazy } from "solid-js";
//#region src/lazyRouteComponent.tsx
function lazyRouteComponent(importer, exportName) {
const resolvedExport = exportName ?? "default";
let preloadPromise;
const comp = lazy(() => importer().catch((error) => {
if (isModuleNotFoundError(error) && error instanceof Error && typeof window !== "undefined" && typeof sessionStorage !== "undefined") {
const storageKey = `tanstack_router_reload:${error.message}`;
if (!sessionStorage.getItem(storageKey)) {
sessionStorage.setItem(storageKey, "1");
window.location.reload();
return { [resolvedExport]: () => null };
}
}
throw error;
}), { export: resolvedExport });
const load = comp.preload;
comp.preload = () => {
if (!preloadPromise) preloadPromise = load().then(() => {}, () => {
preloadPromise = void 0;
});
return preloadPromise;
};
return comp;
}
//#endregion
export { lazyRouteComponent };
//# sourceMappingURL=lazyRouteComponent.js.map