TanStack
OSS
router
Sign in / Sign up
Open main menu
router
Overview
Runs
Analytics
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Succeeded
6659
a0323f22 lint
26 days ago
by schiller-m...
s
Failed
6659
122be0fd perf: move local bindings check before babel.traverse in computeSharedBindings Skip the expensive babel.traverse for route files that have no local module-level bindings (aside from Route). Most route files only contain imports + the Route export, so this early bailout avoids the traversal in the common case.
26 days ago
by schiller-m...
s
Failed
6659
65b1bb59 fast path
26 days ago
by schiller-m...
s
Failed
6659
4ddb7436 fix: shared virtual module for code-split routes When a route file has module-level bindings (variables, functions, classes) referenced by **both** split and non-split route properties, the bindings are duplicated — initialized independently in the reference file and in each virtual split file. This breaks singletons, causes double side effects, and wastes bundle size. ```tsx const collection = { name: 'todos', preload: async () => {} } export const Route = createFileRoute('/todos')({ loader: async () => { await collection.preload() }, // stays in reference component: () => <div>{collection.name}</div>, // split to virtual }) ``` In this example, `collection` is initialized in **both** the reference file (because `loader` references it) and the `?tsr-split=component` virtual file (because the component references it). Two separate instances exist at runtime. To solve this issue, this PR introduces a third virtual module `route.tsx?tsr-shared=1` that contains shared bindings. Both the reference and virtual files import from it. When `sharedBindings` is empty (the common case — component-only helpers, loader-only code), no shared module exists and the system works exactly as today. The reference transform runs first and will emit a static import of `?tsr-shared=1` **only when needed**. Since split chunks are only discovered via the reference file's emitted `import('...?tsr-split=...')`, the bundler will always process/evaluate the reference module first. Result: the shared module is evaluated once and then reused by any later-loaded split chunk.
26 days ago
by schiller-m...
s
Previous page
Previous
Next
Next page