61803f818a
### Depends on - #60577 --- A popstate navigation reads data from the local cache. It does not issue new network requests (unless the cache entries have been evicted). So, when navigating with back/forward, we should not switch back to the PPR loading state. We should render the full, cached dynamic data immediately. To implement this, on a popstate navigation, we update the cache to drop the prefetch data for any segment whose dynamic data was already received. We clone the entire cache node tree and set the `prefetchRsc` field to `null` to prevent it from being rendered. (We can't mutate the node in place because Cache Node is a concurrent data structure.) Technically, what we're actually checking is whether the dynamic network response was received. But since it's a streaming response, this does not mean that all the dynamic data has fully streamed in. It just means that _some_ of the dynamic data was received. But as a heuristic, we assume that the rest dynamic data will stream in quickly, so it's still better to skip the prefetch state. Closes NEXT-2084
24 lines
742 B
JSON
24 lines
742 B
JSON
{
|
|
"compilerOptions": {
|
|
"strict": false,
|
|
"noEmit": true,
|
|
"allowJs": true,
|
|
"resolveJsonModule": true,
|
|
"jsx": "react-jsx",
|
|
"module": "esnext",
|
|
"target": "ESNext",
|
|
"esModuleInterop": true,
|
|
"moduleResolution": "node",
|
|
"baseUrl": ".",
|
|
"types": ["react", "jest", "node", "trusted-types", "jest-extended"],
|
|
"paths": {
|
|
"development-sandbox": ["test/lib/development-sandbox"],
|
|
"next-test-utils": ["test/lib/next-test-utils"],
|
|
"amp-test-utils": ["test/lib/amp-test-utils"],
|
|
"next-webdriver": ["test/lib/next-webdriver"],
|
|
"e2e-utils": ["test/lib/e2e-utils"],
|
|
"test-data-service/*": ["test/lib/test-data-service/*"],
|
|
"test-log": ["test/lib/test-log"]
|
|
}
|
|
}
|
|
}
|