@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
30 lines (29 loc) • 1.09 kB
JavaScript
let _tanstack_router_core = require("@tanstack/router-core");
let solid_js = require("solid-js");
//#region src/lazyRouteComponent.tsx
function lazyRouteComponent(importer, exportName) {
const resolvedExport = exportName ?? "default";
let preloadPromise;
const comp = (0, solid_js.lazy)(() => importer().catch((error) => {
if ((0, _tanstack_router_core.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
exports.lazyRouteComponent = lazyRouteComponent;
//# sourceMappingURL=lazyRouteComponent.cjs.map