| "use strict"; |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| 0 && (module.exports = { |
| createPrerenderSearchParamsForClientPage: null, |
| createSearchParamsFromClient: null, |
| createServerSearchParamsForMetadata: null, |
| createServerSearchParamsForServerPage: null, |
| makeErroringSearchParamsForUseCache: null |
| }); |
| function _export(target, all) { |
| for(var name in all)Object.defineProperty(target, name, { |
| enumerable: true, |
| get: all[name] |
| }); |
| } |
| _export(exports, { |
| createPrerenderSearchParamsForClientPage: function() { |
| return createPrerenderSearchParamsForClientPage; |
| }, |
| createSearchParamsFromClient: function() { |
| return createSearchParamsFromClient; |
| }, |
| createServerSearchParamsForMetadata: function() { |
| return createServerSearchParamsForMetadata; |
| }, |
| createServerSearchParamsForServerPage: function() { |
| return createServerSearchParamsForServerPage; |
| }, |
| makeErroringSearchParamsForUseCache: function() { |
| return makeErroringSearchParamsForUseCache; |
| } |
| }); |
| const _reflect = require("../web/spec-extension/adapters/reflect"); |
| const _dynamicrendering = require("../app-render/dynamic-rendering"); |
| const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); |
| const _invarianterror = require("../../shared/lib/invariant-error"); |
| const _dynamicrenderingutils = require("../dynamic-rendering-utils"); |
| const _creatededupedbycallsiteservererrorlogger = require("../create-deduped-by-callsite-server-error-logger"); |
| const _reflectutils = require("../../shared/lib/utils/reflect-utils"); |
| const _utils = require("./utils"); |
| function createSearchParamsFromClient(underlyingSearchParams, workStore) { |
| const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); |
| if (workUnitStore) { |
| switch(workUnitStore.type){ |
| case 'prerender': |
| case 'prerender-client': |
| case 'prerender-ppr': |
| case 'prerender-legacy': |
| return createStaticPrerenderSearchParams(workStore, workUnitStore); |
| case 'prerender-runtime': |
| throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { |
| value: "E769", |
| enumerable: false, |
| configurable: true |
| }); |
| case 'cache': |
| case 'private-cache': |
| case 'unstable-cache': |
| throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { |
| value: "E739", |
| enumerable: false, |
| configurable: true |
| }); |
| case 'request': |
| return createRenderSearchParams(underlyingSearchParams, workStore); |
| default: |
| workUnitStore; |
| } |
| } |
| (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); |
| } |
| const createServerSearchParamsForMetadata = createServerSearchParamsForServerPage; |
| function createServerSearchParamsForServerPage(underlyingSearchParams, workStore) { |
| const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); |
| if (workUnitStore) { |
| switch(workUnitStore.type){ |
| case 'prerender': |
| case 'prerender-client': |
| case 'prerender-ppr': |
| case 'prerender-legacy': |
| return createStaticPrerenderSearchParams(workStore, workUnitStore); |
| case 'cache': |
| case 'private-cache': |
| case 'unstable-cache': |
| throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { |
| value: "E747", |
| enumerable: false, |
| configurable: true |
| }); |
| case 'prerender-runtime': |
| return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore); |
| case 'request': |
| return createRenderSearchParams(underlyingSearchParams, workStore); |
| default: |
| workUnitStore; |
| } |
| } |
| (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); |
| } |
| function createPrerenderSearchParamsForClientPage(workStore) { |
| if (workStore.forceStatic) { |
| |
| |
| return Promise.resolve({}); |
| } |
| const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); |
| if (workUnitStore) { |
| switch(workUnitStore.type){ |
| case 'prerender': |
| case 'prerender-client': |
| |
| |
| return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`'); |
| case 'prerender-runtime': |
| throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", { |
| value: "E768", |
| enumerable: false, |
| configurable: true |
| }); |
| case 'cache': |
| case 'private-cache': |
| case 'unstable-cache': |
| throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", { |
| value: "E746", |
| enumerable: false, |
| configurable: true |
| }); |
| case 'prerender-ppr': |
| case 'prerender-legacy': |
| case 'request': |
| return Promise.resolve({}); |
| default: |
| workUnitStore; |
| } |
| } |
| (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)(); |
| } |
| function createStaticPrerenderSearchParams(workStore, prerenderStore) { |
| if (workStore.forceStatic) { |
| |
| |
| return Promise.resolve({}); |
| } |
| switch(prerenderStore.type){ |
| case 'prerender': |
| case 'prerender-client': |
| |
| return makeHangingSearchParams(workStore, prerenderStore); |
| case 'prerender-ppr': |
| case 'prerender-legacy': |
| |
| |
| return makeErroringExoticSearchParams(workStore, prerenderStore); |
| default: |
| return prerenderStore; |
| } |
| } |
| function createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) { |
| return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, process.env.__NEXT_CACHE_COMPONENTS ? makeUntrackedSearchParams(underlyingSearchParams) : makeUntrackedExoticSearchParams(underlyingSearchParams)); |
| } |
| function createRenderSearchParams(underlyingSearchParams, workStore) { |
| if (workStore.forceStatic) { |
| |
| |
| return Promise.resolve({}); |
| } else { |
| if (process.env.NODE_ENV === 'development') { |
| |
| |
| |
| if (process.env.__NEXT_CACHE_COMPONENTS) { |
| return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore); |
| } |
| return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore); |
| } else { |
| if (process.env.__NEXT_CACHE_COMPONENTS) { |
| return makeUntrackedSearchParams(underlyingSearchParams); |
| } |
| return makeUntrackedExoticSearchParams(underlyingSearchParams); |
| } |
| } |
| } |
| const CachedSearchParams = new WeakMap(); |
| const CachedSearchParamsForUseCache = new WeakMap(); |
| function makeHangingSearchParams(workStore, prerenderStore) { |
| const cachedSearchParams = CachedSearchParams.get(prerenderStore); |
| if (cachedSearchParams) { |
| return cachedSearchParams; |
| } |
| const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`'); |
| const proxiedPromise = new Proxy(promise, { |
| get (target, prop, receiver) { |
| if (Object.hasOwn(promise, prop)) { |
| |
| |
| |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| } |
| switch(prop){ |
| case 'then': |
| { |
| const expression = '`await searchParams`, `searchParams.then`, or similar'; |
| (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| } |
| case 'status': |
| { |
| const expression = '`use(searchParams)`, `searchParams.status`, or similar'; |
| (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore); |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| } |
| default: |
| { |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| } |
| } |
| } |
| }); |
| CachedSearchParams.set(prerenderStore, proxiedPromise); |
| return proxiedPromise; |
| } |
| function makeErroringExoticSearchParams(workStore, prerenderStore) { |
| const cachedSearchParams = CachedSearchParams.get(workStore); |
| if (cachedSearchParams) { |
| return cachedSearchParams; |
| } |
| const underlyingSearchParams = {}; |
| |
| |
| |
| const promise = Promise.resolve(underlyingSearchParams); |
| const proxiedPromise = new Proxy(promise, { |
| get (target, prop, receiver) { |
| if (Object.hasOwn(promise, prop)) { |
| |
| |
| |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| } |
| switch(prop){ |
| case 'then': |
| { |
| const expression = '`await searchParams`, `searchParams.then`, or similar'; |
| if (workStore.dynamicShouldError) { |
| (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); |
| } else if (prerenderStore.type === 'prerender-ppr') { |
| |
| (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); |
| } else { |
| |
| (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); |
| } |
| return; |
| } |
| case 'status': |
| { |
| const expression = '`use(searchParams)`, `searchParams.status`, or similar'; |
| if (workStore.dynamicShouldError) { |
| (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); |
| } else if (prerenderStore.type === 'prerender-ppr') { |
| |
| (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); |
| } else { |
| |
| (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); |
| } |
| return; |
| } |
| default: |
| { |
| if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) { |
| const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); |
| if (workStore.dynamicShouldError) { |
| (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); |
| } else if (prerenderStore.type === 'prerender-ppr') { |
| |
| (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); |
| } else { |
| |
| (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); |
| } |
| } |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| } |
| } |
| }, |
| has (target, prop) { |
| |
| |
| |
| |
| if (typeof prop === 'string') { |
| const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); |
| if (workStore.dynamicShouldError) { |
| (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); |
| } else if (prerenderStore.type === 'prerender-ppr') { |
| |
| (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); |
| } else { |
| |
| (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); |
| } |
| return false; |
| } |
| return _reflect.ReflectAdapter.has(target, prop); |
| }, |
| ownKeys () { |
| const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; |
| if (workStore.dynamicShouldError) { |
| (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression); |
| } else if (prerenderStore.type === 'prerender-ppr') { |
| |
| (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking); |
| } else { |
| |
| (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore); |
| } |
| } |
| }); |
| CachedSearchParams.set(workStore, proxiedPromise); |
| return proxiedPromise; |
| } |
| function makeErroringSearchParamsForUseCache(workStore) { |
| const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore); |
| if (cachedSearchParams) { |
| return cachedSearchParams; |
| } |
| const promise = Promise.resolve({}); |
| const proxiedPromise = new Proxy(promise, { |
| get: function get(target, prop, receiver) { |
| if (Object.hasOwn(promise, prop)) { |
| |
| |
| |
| |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| } |
| if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { |
| (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get); |
| } |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| }, |
| has: function has(target, prop) { |
| |
| |
| |
| |
| if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) { |
| (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has); |
| } |
| return _reflect.ReflectAdapter.has(target, prop); |
| }, |
| ownKeys: function ownKeys() { |
| (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys); |
| } |
| }); |
| CachedSearchParamsForUseCache.set(workStore, proxiedPromise); |
| return proxiedPromise; |
| } |
| function makeUntrackedExoticSearchParams(underlyingSearchParams) { |
| const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); |
| if (cachedSearchParams) { |
| return cachedSearchParams; |
| } |
| |
| |
| |
| const promise = Promise.resolve(underlyingSearchParams); |
| CachedSearchParams.set(underlyingSearchParams, promise); |
| Object.keys(underlyingSearchParams).forEach((prop)=>{ |
| if (!_reflectutils.wellKnownProperties.has(prop)) { |
| Object.defineProperty(promise, prop, { |
| get () { |
| const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); |
| if (workUnitStore) { |
| (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); |
| } |
| return underlyingSearchParams[prop]; |
| }, |
| set (value) { |
| Object.defineProperty(promise, prop, { |
| value, |
| writable: true, |
| enumerable: true |
| }); |
| }, |
| enumerable: true, |
| configurable: true |
| }); |
| } |
| }); |
| return promise; |
| } |
| function makeUntrackedSearchParams(underlyingSearchParams) { |
| const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); |
| if (cachedSearchParams) { |
| return cachedSearchParams; |
| } |
| const promise = Promise.resolve(underlyingSearchParams); |
| CachedSearchParams.set(underlyingSearchParams, promise); |
| return promise; |
| } |
| function makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) { |
| const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); |
| if (cachedSearchParams) { |
| return cachedSearchParams; |
| } |
| const proxiedProperties = new Set(); |
| const unproxiedProperties = []; |
| |
| |
| |
| |
| |
| |
| let promiseInitialized = false; |
| const proxiedUnderlying = new Proxy(underlyingSearchParams, { |
| get (target, prop, receiver) { |
| if (typeof prop === 'string' && promiseInitialized) { |
| if (store.dynamicShouldError) { |
| const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); |
| (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); |
| } |
| const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); |
| if (workUnitStore) { |
| (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore); |
| } |
| } |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| }, |
| has (target, prop) { |
| if (typeof prop === 'string') { |
| if (store.dynamicShouldError) { |
| const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); |
| (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); |
| } |
| } |
| return Reflect.has(target, prop); |
| }, |
| ownKeys (target) { |
| if (store.dynamicShouldError) { |
| const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar'; |
| (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); |
| } |
| return Reflect.ownKeys(target); |
| } |
| }); |
| |
| |
| |
| const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); |
| promise.then(()=>{ |
| promiseInitialized = true; |
| }); |
| Object.keys(underlyingSearchParams).forEach((prop)=>{ |
| if (_reflectutils.wellKnownProperties.has(prop)) { |
| |
| |
| unproxiedProperties.push(prop); |
| } else { |
| proxiedProperties.add(prop); |
| Object.defineProperty(promise, prop, { |
| get () { |
| return proxiedUnderlying[prop]; |
| }, |
| set (newValue) { |
| Object.defineProperty(promise, prop, { |
| value: newValue, |
| writable: true, |
| enumerable: true |
| }); |
| }, |
| enumerable: true, |
| configurable: true |
| }); |
| } |
| }); |
| const proxiedPromise = new Proxy(promise, { |
| get (target, prop, receiver) { |
| if (prop === 'then' && store.dynamicShouldError) { |
| const expression = '`searchParams.then`'; |
| (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression); |
| } |
| if (typeof prop === 'string') { |
| if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || |
| |
| Reflect.has(target, prop) === false)) { |
| const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); |
| syncIODev(store.route, expression); |
| } |
| } |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| }, |
| set (target, prop, value, receiver) { |
| if (typeof prop === 'string') { |
| proxiedProperties.delete(prop); |
| } |
| return Reflect.set(target, prop, value, receiver); |
| }, |
| has (target, prop) { |
| if (typeof prop === 'string') { |
| if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || |
| |
| Reflect.has(target, prop) === false)) { |
| const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); |
| syncIODev(store.route, expression); |
| } |
| } |
| return Reflect.has(target, prop); |
| }, |
| ownKeys (target) { |
| const expression = '`Object.keys(searchParams)` or similar'; |
| syncIODev(store.route, expression, unproxiedProperties); |
| return Reflect.ownKeys(target); |
| } |
| }); |
| CachedSearchParams.set(underlyingSearchParams, proxiedPromise); |
| return proxiedPromise; |
| } |
| |
| |
| |
| function makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) { |
| const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams); |
| if (cachedSearchParams) { |
| return cachedSearchParams; |
| } |
| const proxiedProperties = new Set(); |
| const unproxiedProperties = []; |
| const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams); |
| Object.keys(underlyingSearchParams).forEach((prop)=>{ |
| if (_reflectutils.wellKnownProperties.has(prop)) { |
| |
| |
| unproxiedProperties.push(prop); |
| } else { |
| proxiedProperties.add(prop); |
| } |
| }); |
| const proxiedPromise = new Proxy(promise, { |
| get (target, prop, receiver) { |
| if (typeof prop === 'string') { |
| if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || |
| |
| Reflect.has(target, prop) === false)) { |
| const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop); |
| warnForSyncAccess(store.route, expression); |
| } |
| } |
| return _reflect.ReflectAdapter.get(target, prop, receiver); |
| }, |
| set (target, prop, value, receiver) { |
| if (typeof prop === 'string') { |
| proxiedProperties.delete(prop); |
| } |
| return Reflect.set(target, prop, value, receiver); |
| }, |
| has (target, prop) { |
| if (typeof prop === 'string') { |
| if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || |
| |
| Reflect.has(target, prop) === false)) { |
| const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop); |
| warnForSyncAccess(store.route, expression); |
| } |
| } |
| return Reflect.has(target, prop); |
| }, |
| ownKeys (target) { |
| const expression = '`Object.keys(searchParams)` or similar'; |
| warnForIncompleteEnumeration(store.route, expression, unproxiedProperties); |
| return Reflect.ownKeys(target); |
| } |
| }); |
| CachedSearchParams.set(underlyingSearchParams, proxiedPromise); |
| return proxiedPromise; |
| } |
| function syncIODev(route, expression, missingProperties) { |
| |
| if (missingProperties && missingProperties.length > 0) { |
| warnForIncompleteEnumeration(route, expression, missingProperties); |
| } else { |
| warnForSyncAccess(route, expression); |
| } |
| const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); |
| if (workUnitStore) { |
| switch(workUnitStore.type){ |
| case 'request': |
| if (workUnitStore.prerenderPhase === true) { |
| |
| |
| (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore); |
| } |
| break; |
| case 'prerender': |
| case 'prerender-client': |
| case 'prerender-runtime': |
| case 'prerender-ppr': |
| case 'prerender-legacy': |
| case 'cache': |
| case 'private-cache': |
| case 'unstable-cache': |
| break; |
| default: |
| workUnitStore; |
| } |
| } |
| } |
| const warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError); |
| const warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError); |
| function createSearchAccessError(route, expression) { |
| const prefix = route ? `Route "${route}" ` : 'This route '; |
| return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { |
| value: "E249", |
| enumerable: false, |
| configurable: true |
| }); |
| } |
| function createIncompleteEnumerationError(route, expression, missingProperties) { |
| const prefix = route ? `Route "${route}" ` : 'This route '; |
| return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", { |
| value: "E2", |
| enumerable: false, |
| configurable: true |
| }); |
| } |
| function describeListOfPropertyNames(properties) { |
| switch(properties.length){ |
| case 0: |
| throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), "__NEXT_ERROR_CODE", { |
| value: "E531", |
| enumerable: false, |
| configurable: true |
| }); |
| case 1: |
| return `\`${properties[0]}\``; |
| case 2: |
| return `\`${properties[0]}\` and \`${properties[1]}\``; |
| default: |
| { |
| let description = ''; |
| for(let i = 0; i < properties.length - 1; i++){ |
| description += `\`${properties[i]}\`, `; |
| } |
| description += `, and \`${properties[properties.length - 1]}\``; |
| return description; |
| } |
| } |
| } |
|
|
| |