37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
import { wellKnownProperties } from '../../shared/lib/utils/reflect-utils';
|
|
const CachedParams = new WeakMap();
|
|
function makeUntrackedExoticParams(underlyingParams) {
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
const promise = Promise.resolve(underlyingParams);
|
|
CachedParams.set(underlyingParams, promise);
|
|
Object.keys(underlyingParams).forEach((prop)=>{
|
|
if (wellKnownProperties.has(prop)) {
|
|
// These properties cannot be shadowed because they need to be the
|
|
// true underlying value for Promises to work correctly at runtime
|
|
} else {
|
|
;
|
|
promise[prop] = underlyingParams[prop];
|
|
}
|
|
});
|
|
return promise;
|
|
}
|
|
function makeUntrackedParams(underlyingParams) {
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
const promise = Promise.resolve(underlyingParams);
|
|
CachedParams.set(underlyingParams, promise);
|
|
return promise;
|
|
}
|
|
export function createRenderParamsFromClient(clientParams) {
|
|
if (process.env.__NEXT_CACHE_COMPONENTS) {
|
|
return makeUntrackedParams(clientParams);
|
|
}
|
|
return makeUntrackedExoticParams(clientParams);
|
|
}
|
|
|
|
//# sourceMappingURL=params.browser.prod.js.map
|