75 lines
3.5 KiB
JavaScript
75 lines
3.5 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "fillLazyItemsTillLeafWithHead", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return fillLazyItemsTillLeafWithHead;
|
|
}
|
|
});
|
|
const _approutercontextsharedruntime = require("../../../shared/lib/app-router-context.shared-runtime");
|
|
const _createroutercachekey = require("./create-router-cache-key");
|
|
function fillLazyItemsTillLeafWithHead(newCache, existingCache, routerState, head, wasPrefetched) {
|
|
const isLastSegment = Object.keys(routerState[1]).length === 0;
|
|
if (isLastSegment) {
|
|
newCache.head = head;
|
|
return;
|
|
}
|
|
// Remove segment that we got data for so that it is filled in during rendering of subTreeData.
|
|
for(const key in routerState[1]){
|
|
const parallelRouteState = routerState[1][key];
|
|
const segmentForParallelRoute = parallelRouteState[0];
|
|
const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute);
|
|
if (existingCache) {
|
|
const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key);
|
|
if (existingParallelRoutesCacheNode) {
|
|
let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode);
|
|
const existingCacheNode = parallelRouteCacheNode.get(cacheKey);
|
|
const newCacheNode = wasPrefetched && existingCacheNode ? {
|
|
status: existingCacheNode.status,
|
|
data: existingCacheNode.data,
|
|
subTreeData: existingCacheNode.subTreeData,
|
|
parallelRoutes: new Map(existingCacheNode.parallelRoutes)
|
|
} : {
|
|
status: _approutercontextsharedruntime.CacheStates.LAZY_INITIALIZED,
|
|
data: null,
|
|
subTreeData: null,
|
|
parallelRoutes: new Map(existingCacheNode == null ? void 0 : existingCacheNode.parallelRoutes)
|
|
};
|
|
// Overrides the cache key with the new cache node.
|
|
parallelRouteCacheNode.set(cacheKey, newCacheNode);
|
|
// Traverse deeper to apply the head / fill lazy items till the head.
|
|
fillLazyItemsTillLeafWithHead(newCacheNode, existingCacheNode, parallelRouteState, head, wasPrefetched);
|
|
newCache.parallelRoutes.set(key, parallelRouteCacheNode);
|
|
continue;
|
|
}
|
|
}
|
|
const newCacheNode = {
|
|
status: _approutercontextsharedruntime.CacheStates.LAZY_INITIALIZED,
|
|
data: null,
|
|
subTreeData: null,
|
|
parallelRoutes: new Map()
|
|
};
|
|
const existingParallelRoutes = newCache.parallelRoutes.get(key);
|
|
if (existingParallelRoutes) {
|
|
existingParallelRoutes.set(cacheKey, newCacheNode);
|
|
} else {
|
|
newCache.parallelRoutes.set(key, new Map([
|
|
[
|
|
cacheKey,
|
|
newCacheNode
|
|
]
|
|
]));
|
|
}
|
|
fillLazyItemsTillLeafWithHead(newCacheNode, undefined, parallelRouteState, head, wasPrefetched);
|
|
}
|
|
}
|
|
|
|
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', { value: true });
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
|
|
//# sourceMappingURL=fill-lazy-items-till-leaf-with-head.js.map
|