104 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
"use strict";
 | 
						|
Object.defineProperty(exports, "__esModule", {
 | 
						|
    value: true
 | 
						|
});
 | 
						|
Object.defineProperty(exports, "createServerPathnameForMetadata", {
 | 
						|
    enumerable: true,
 | 
						|
    get: function() {
 | 
						|
        return createServerPathnameForMetadata;
 | 
						|
    }
 | 
						|
});
 | 
						|
const _dynamicrendering = require("../app-render/dynamic-rendering");
 | 
						|
const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external");
 | 
						|
const _dynamicrenderingutils = require("../dynamic-rendering-utils");
 | 
						|
const _invarianterror = require("../../shared/lib/invariant-error");
 | 
						|
function createServerPathnameForMetadata(underlyingPathname, workStore) {
 | 
						|
    const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
 | 
						|
    if (workUnitStore) {
 | 
						|
        switch(workUnitStore.type){
 | 
						|
            case 'prerender':
 | 
						|
            case 'prerender-client':
 | 
						|
            case 'prerender-ppr':
 | 
						|
            case 'prerender-legacy':
 | 
						|
                {
 | 
						|
                    return createPrerenderPathname(underlyingPathname, workStore, workUnitStore);
 | 
						|
                }
 | 
						|
            case 'cache':
 | 
						|
            case 'private-cache':
 | 
						|
            case 'unstable-cache':
 | 
						|
                throw Object.defineProperty(new _invarianterror.InvariantError('createServerPathnameForMetadata should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
 | 
						|
                    value: "E740",
 | 
						|
                    enumerable: false,
 | 
						|
                    configurable: true
 | 
						|
                });
 | 
						|
            case 'prerender-runtime':
 | 
						|
                return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, createRenderPathname(underlyingPathname));
 | 
						|
            case 'request':
 | 
						|
                return createRenderPathname(underlyingPathname);
 | 
						|
            default:
 | 
						|
                workUnitStore;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();
 | 
						|
}
 | 
						|
function createPrerenderPathname(underlyingPathname, workStore, prerenderStore) {
 | 
						|
    switch(prerenderStore.type){
 | 
						|
        case 'prerender-client':
 | 
						|
            throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderPathname was called inside a client component scope.'), "__NEXT_ERROR_CODE", {
 | 
						|
                value: "E694",
 | 
						|
                enumerable: false,
 | 
						|
                configurable: true
 | 
						|
            });
 | 
						|
        case 'prerender':
 | 
						|
            {
 | 
						|
                const fallbackParams = prerenderStore.fallbackRouteParams;
 | 
						|
                if (fallbackParams && fallbackParams.size > 0) {
 | 
						|
                    return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`pathname`');
 | 
						|
                }
 | 
						|
                break;
 | 
						|
            }
 | 
						|
        case 'prerender-ppr':
 | 
						|
            {
 | 
						|
                const fallbackParams = prerenderStore.fallbackRouteParams;
 | 
						|
                if (fallbackParams && fallbackParams.size > 0) {
 | 
						|
                    return makeErroringPathname(workStore, prerenderStore.dynamicTracking);
 | 
						|
                }
 | 
						|
                break;
 | 
						|
            }
 | 
						|
        case 'prerender-legacy':
 | 
						|
            break;
 | 
						|
        default:
 | 
						|
            prerenderStore;
 | 
						|
    }
 | 
						|
    // We don't have any fallback params so we have an entirely static safe params object
 | 
						|
    return Promise.resolve(underlyingPathname);
 | 
						|
}
 | 
						|
function makeErroringPathname(workStore, dynamicTracking) {
 | 
						|
    let reject = null;
 | 
						|
    const promise = new Promise((_, re)=>{
 | 
						|
        reject = re;
 | 
						|
    });
 | 
						|
    const originalThen = promise.then.bind(promise);
 | 
						|
    // We instrument .then so that we can generate a tracking event only if you actually
 | 
						|
    // await this promise, not just that it is created.
 | 
						|
    promise.then = (onfulfilled, onrejected)=>{
 | 
						|
        if (reject) {
 | 
						|
            try {
 | 
						|
                (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'metadata relative url resolving', dynamicTracking);
 | 
						|
            } catch (error) {
 | 
						|
                reject(error);
 | 
						|
                reject = null;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return originalThen(onfulfilled, onrejected);
 | 
						|
    };
 | 
						|
    // We wrap in a noop proxy to trick the runtime into thinking it
 | 
						|
    // isn't a native promise (it's not really). This is so that awaiting
 | 
						|
    // the promise will call the `then` property triggering the lazy postpone
 | 
						|
    return new Proxy(promise, {});
 | 
						|
}
 | 
						|
function createRenderPathname(underlyingPathname) {
 | 
						|
    return Promise.resolve(underlyingPathname);
 | 
						|
}
 | 
						|
 | 
						|
//# sourceMappingURL=pathname.js.map
 |