everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
61 lines (59 loc) • 2.54 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_ui_auth = require('./auth.cjs');
const require_ui_router_defaults = require('./router-defaults.cjs');
const require_ui_router_error = require('./router-error.cjs');
let _tanstack_react_router = require("@tanstack/react-router");
let _tanstack_react_query = require("@tanstack/react-query");
//#region src/ui/router-client.tsx
/**
* Client router factory — creates a TanStack Router with browser history.
* The app-specific route tree is injected as `defaultRouteTree` (the
* bundled core-only fallback); the composed tree wins when manifest
* construction produced one.
*/
function createRouter(opts) {
const queryClient = opts.context.queryClient;
const history = opts.history ?? (0, _tanstack_react_router.createBrowserHistory)();
const cspNonce = opts.context.cspNonce;
const routeTree = opts.routeTree ?? opts.defaultRouteTree;
if (!routeTree) throw new Error("createRouter: no route tree — compose failed and no core-only fallback was constructed");
return {
router: (0, _tanstack_react_router.createRouter)({
routeTree,
history,
basepath: opts.basepath ?? opts.context.runtimeConfig?.runtime?.runtimeBasePath ?? "/",
context: {
queryClient,
runtimeConfig: opts.context.runtimeConfig,
cspNonce: opts.context.cspNonce,
apiClient: opts.context.apiClient,
authClient: opts.context.authClient ?? require_ui_auth.createAuthClient({
runtimeConfig: opts.context.runtimeConfig,
cspNonce: opts.context.cspNonce
}),
session: opts.context.session,
locale: opts.context.locale
},
...cspNonce ? { ssr: { nonce: cspNonce } } : {},
defaultPreload: "intent",
scrollRestoration: true,
defaultStructuralSharing: true,
defaultPreloadStaleTime: 0,
defaultPendingMinMs: 0,
defaultErrorComponent: require_ui_router_error.RouterError,
defaultNotFoundComponent: require_ui_router_defaults.defaultNotFoundComponent,
defaultPendingComponent: require_ui_router_defaults.defaultPendingComponent,
dehydrate: () => {
if (typeof window === "undefined") return { queryClientState: (0, _tanstack_react_query.dehydrate)(queryClient) };
return { queryClientState: {} };
},
hydrate: (dehydrated) => {
if (typeof window !== "undefined" && dehydrated?.queryClientState) (0, _tanstack_react_query.hydrate)(queryClient, dehydrated.queryClientState);
}
}),
queryClient
};
}
//#endregion
exports.createRouter = createRouter;
//# sourceMappingURL=router-client.cjs.map