UNPKG

next

Version:

The React Framework

200 lines (199 loc) • 6.91 kB
// Share the instance module in the next-shared layer import { workUnitAsyncStorageInstance } from './work-unit-async-storage-instance' with { 'turbopack-transition': 'next-shared' }; import { NEXT_HMR_REFRESH_HASH_COOKIE } from '../../client/components/app-router-headers'; import { InvariantError } from '../../shared/lib/invariant-error'; export { workUnitAsyncStorageInstance as workUnitAsyncStorage }; export function throwForMissingRequestStore(callingExpression) { throw Object.defineProperty(new Error(`\`${callingExpression}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`), "__NEXT_ERROR_CODE", { value: "E251", enumerable: false, configurable: true }); } export function throwInvariantForMissingStore() { throw Object.defineProperty(new InvariantError('Expected workUnitAsyncStorage to have a store.'), "__NEXT_ERROR_CODE", { value: "E696", enumerable: false, configurable: true }); } export function getPrerenderResumeDataCache(workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-runtime': case 'prerender-ppr': return workUnitStore.prerenderResumeDataCache; case 'prerender-client': // TODO eliminate fetch caching in client scope and stop exposing this data // cache during SSR. return workUnitStore.prerenderResumeDataCache; case 'request': { // In dev, we might fill caches even during a dynamic request. if (workUnitStore.prerenderResumeDataCache) { return workUnitStore.prerenderResumeDataCache; } // fallthrough } case 'prerender-legacy': case 'cache': case 'private-cache': case 'unstable-cache': return null; default: return workUnitStore; } } export function getRenderResumeDataCache(workUnitStore) { switch(workUnitStore.type){ case 'request': case 'prerender': case 'prerender-runtime': case 'prerender-client': if (workUnitStore.renderResumeDataCache) { // If we are in a prerender, we might have a render resume data cache // that is used to read from prefilled caches. return workUnitStore.renderResumeDataCache; } // fallthrough case 'prerender-ppr': // Otherwise we return the mutable resume data cache here as an immutable // version of the cache as it can also be used for reading. return workUnitStore.prerenderResumeDataCache ?? null; case 'cache': case 'private-cache': case 'unstable-cache': case 'prerender-legacy': return null; default: return workUnitStore; } } export function getHmrRefreshHash(workStore, workUnitStore) { if (workStore.dev) { switch(workUnitStore.type){ case 'cache': case 'private-cache': case 'prerender': case 'prerender-runtime': return workUnitStore.hmrRefreshHash; case 'request': var _workUnitStore_cookies_get; return (_workUnitStore_cookies_get = workUnitStore.cookies.get(NEXT_HMR_REFRESH_HASH_COOKIE)) == null ? void 0 : _workUnitStore_cookies_get.value; case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': case 'unstable-cache': break; default: workUnitStore; } } return undefined; } export function isHmrRefresh(workStore, workUnitStore) { if (workStore.dev) { switch(workUnitStore.type){ case 'cache': case 'private-cache': case 'request': return workUnitStore.isHmrRefresh ?? false; case 'prerender': case 'prerender-client': case 'prerender-runtime': case 'prerender-ppr': case 'prerender-legacy': case 'unstable-cache': break; default: workUnitStore; } } return false; } export function getServerComponentsHmrCache(workStore, workUnitStore) { if (workStore.dev) { switch(workUnitStore.type){ case 'cache': case 'private-cache': case 'request': return workUnitStore.serverComponentsHmrCache; case 'prerender': case 'prerender-client': case 'prerender-runtime': case 'prerender-ppr': case 'prerender-legacy': case 'unstable-cache': break; default: workUnitStore; } } return undefined; } /** * Returns a draft mode provider only if draft mode is enabled. */ export function getDraftModeProviderForCacheScope(workStore, workUnitStore) { if (workStore.isDraftMode) { switch(workUnitStore.type){ case 'cache': case 'private-cache': case 'unstable-cache': case 'prerender-runtime': case 'request': return workUnitStore.draftMode; case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': break; default: workUnitStore; } } return undefined; } export function getCacheSignal(workUnitStore) { switch(workUnitStore.type){ case 'prerender': case 'prerender-client': case 'prerender-runtime': return workUnitStore.cacheSignal; case 'request': { // In dev, we might fill caches even during a dynamic request. if (workUnitStore.cacheSignal) { return workUnitStore.cacheSignal; } // fallthrough } case 'prerender-ppr': case 'prerender-legacy': case 'cache': case 'private-cache': case 'unstable-cache': return null; default: return workUnitStore; } } export function getRuntimeStagePromise(workUnitStore) { switch(workUnitStore.type){ case 'prerender-runtime': case 'private-cache': return workUnitStore.runtimeStagePromise; case 'prerender': case 'prerender-client': case 'prerender-ppr': case 'prerender-legacy': case 'request': case 'cache': case 'unstable-cache': return null; default: return workUnitStore; } } //# sourceMappingURL=work-unit-async-storage.external.js.map