Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions packages/next/src/lib/metadata/metadata-context.tsx

This file was deleted.

12 changes: 0 additions & 12 deletions packages/next/src/lib/metadata/metadata.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import type {
ResolvedViewport,
} from './types/metadata-interface'
import { isHTTPAccessFallbackError } from '../../client/components/http-access-fallback/http-access-fallback'
import type { MetadataContext } from './types/resolvers'
import { createServerSearchParamsForMetadata } from '../../server/request/search-params'
import { createServerPathnameForMetadata } from '../../server/request/pathname'
import { isPostpone } from '../../server/lib/router-utils/is-postpone'
Expand Down Expand Up @@ -42,7 +41,6 @@ export function createMetadataComponents({
tree,
pathname,
parsedQuery,
metadataContext,
interpolatedParams,
errorType,
serveStreamingMetadata,
Expand All @@ -51,7 +49,6 @@ export function createMetadataComponents({
tree: LoaderTree
pathname: string
parsedQuery: SearchParams
metadataContext: MetadataContext
interpolatedParams: Params
errorType?: MetadataErrorType | 'redirect'
serveStreamingMetadata: boolean
Expand Down Expand Up @@ -137,7 +134,6 @@ export function createMetadataComponents({
pathnameForMetadata,
searchParams,
interpolatedParams,
metadataContext,
isRuntimePrefetchable,
errorType
).catch((metadataErr) => {
Expand All @@ -153,7 +149,6 @@ export function createMetadataComponents({
pathnameForMetadata,
searchParams,
interpolatedParams,
metadataContext,
isRuntimePrefetchable
).catch(() => null)
}
Expand Down Expand Up @@ -194,7 +189,6 @@ export function createMetadataComponents({
pathnameForMetadata,
searchParams,
interpolatedParams,
metadataContext,
isRuntimePrefetchable,
errorType
),
Expand Down Expand Up @@ -234,7 +228,6 @@ async function getResolvedMetadataImpl(
pathname: Promise<string>,
searchParams: Promise<ParsedUrlQuery>,
interpolatedParams: Params,
metadataContext: MetadataContext,
isRuntimePrefetchable: boolean,
errorType?: MetadataErrorType | 'redirect'
): Promise<React.ReactNode> {
Expand All @@ -244,7 +237,6 @@ async function getResolvedMetadataImpl(
pathname,
searchParams,
interpolatedParams,
metadataContext,
isRuntimePrefetchable,
errorConvention
)
Expand All @@ -256,7 +248,6 @@ async function getNotFoundMetadataImpl(
pathname: Promise<string>,
searchParams: Promise<ParsedUrlQuery>,
interpolatedParams: Params,
metadataContext: MetadataContext,
isRuntimePrefetchable: boolean
): Promise<React.ReactNode> {
const notFoundErrorConvention = 'not-found'
Expand All @@ -265,7 +256,6 @@ async function getNotFoundMetadataImpl(
pathname,
searchParams,
interpolatedParams,
metadataContext,
isRuntimePrefetchable,
notFoundErrorConvention
)
Expand Down Expand Up @@ -311,7 +301,6 @@ async function renderMetadata(
pathname: Promise<string>,
searchParams: Promise<ParsedUrlQuery>,
interpolatedParams: Params,
metadataContext: MetadataContext,
isRuntimePrefetchable: boolean,
errorConvention?: MetadataErrorType
) {
Expand All @@ -321,7 +310,6 @@ async function renderMetadata(
searchParams,
errorConvention,
interpolatedParams,
metadataContext,
isRuntimePrefetchable
)
return <>{createMetadataElements(resolvedMetadata)}</>
Expand Down
4 changes: 1 addition & 3 deletions packages/next/src/lib/metadata/resolve-metadata.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ function accumulateMetadata(metadataItems: MetadataItems) {
])
const route = '/test'
const pathname = Promise.resolve('/test')
return originAccumulateMetadata(route, fullMetadataItems, pathname, {
isStaticMetadataRouteFile: false,
})
return originAccumulateMetadata(route, fullMetadataItems, pathname, false)
}

function accumulateViewport(viewportExports: Viewport[]) {
Expand Down
47 changes: 21 additions & 26 deletions packages/next/src/lib/metadata/resolve-metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import { getSegmentParam } from '../../shared/lib/router/utils/get-segment-param
import type { Twitter } from './types/twitter-types'
import type { OpenGraph } from './types/opengraph-types'
import type { AppDirModules } from '../../build/webpack/loaders/next-app-loader'
import type { MetadataContext } from './types/resolvers'
import type { LoaderTree } from '../../server/lib/app-dir-module'
import type {
AbsoluteTemplateString,
Expand Down Expand Up @@ -162,7 +161,6 @@ async function mergeStaticMetadata(
source: Metadata | null,
target: ResolvedMetadata,
staticFilesMetadata: StaticMetadata,
metadataContext: MetadataContext,
titleTemplates: TitleTemplates,
leafSegmentStaticIcons: StaticIcons,
pathname: Promise<string>
Expand All @@ -181,22 +179,24 @@ async function mergeStaticMetadata(

// file based metadata is specified and current level metadata twitter.images is not specified
if (twitter && !source?.twitter?.hasOwnProperty('images')) {
const isStaticFile = true
const resolvedTwitter = resolveTwitter(
{ ...target.twitter, images: twitter } as Twitter,
metadataBase,
{ ...metadataContext, isStaticMetadataRouteFile: true },
isStaticFile,
titleTemplates.twitter
)
target.twitter = convertUrlsToStrings(resolvedTwitter)
}

// file based metadata is specified and current level metadata openGraph.images is not specified
if (openGraph && !source?.openGraph?.hasOwnProperty('images')) {
const isStaticFile = true
const resolvedOpenGraph = await resolveOpenGraph(
{ ...target.openGraph, images: openGraph } as OpenGraph,
metadataBase,
pathname,
{ ...metadataContext, isStaticMetadataRouteFile: true },
isStaticFile,
titleTemplates.openGraph
)
target.openGraph = convertUrlsToStrings(resolvedOpenGraph)
Expand All @@ -219,15 +219,15 @@ async function mergeMetadata(
resolvedMetadata,
staticFilesMetadata,
titleTemplates,
metadataContext,
isStaticMetadataRouteFile,
buildState,
leafSegmentStaticIcons,
}: {
metadata: Metadata | null
resolvedMetadata: ResolvedMetadata
staticFilesMetadata: StaticMetadata
titleTemplates: TitleTemplates
metadataContext: MetadataContext
isStaticMetadataRouteFile: boolean
buildState: BuildState
leafSegmentStaticIcons: StaticIcons
}
Expand All @@ -253,12 +253,7 @@ async function mergeMetadata(
}
case 'alternates': {
newResolvedMetadata.alternates = convertUrlsToStrings(
await resolveAlternates(
metadata.alternates,
metadataBase,
pathname,
metadataContext
)
await resolveAlternates(metadata.alternates, metadataBase, pathname)
)
break
}
Expand All @@ -268,7 +263,7 @@ async function mergeMetadata(
metadata.openGraph,
metadataBase,
pathname,
metadataContext,
isStaticMetadataRouteFile,
titleTemplates.openGraph
)
)
Expand All @@ -279,7 +274,7 @@ async function mergeMetadata(
resolveTwitter(
metadata.twitter,
metadataBase,
metadataContext,
isStaticMetadataRouteFile,
titleTemplates.twitter
)
)
Expand Down Expand Up @@ -331,17 +326,15 @@ async function mergeMetadata(
newResolvedMetadata[key] = await resolveItunes(
metadata.itunes,
metadataBase,
pathname,
metadataContext
pathname
)
break
}
case 'pagination': {
newResolvedMetadata.pagination = await resolvePagination(
metadata.pagination,
metadataBase,
pathname,
metadataContext
pathname
)
break
}
Expand Down Expand Up @@ -439,7 +432,6 @@ async function mergeMetadata(
metadata,
newResolvedMetadata,
staticFilesMetadata,
metadataContext,
titleTemplates,
leafSegmentStaticIcons,
pathname
Expand Down Expand Up @@ -938,7 +930,7 @@ function postProcessMetadata(
metadata: ResolvedMetadata,
favicon: any,
titleTemplates: TitleTemplates,
metadataContext: MetadataContext
isStaticMetadataRouteFile: boolean
): ResolvedMetadata {
const { openGraph, twitter } = metadata

Expand Down Expand Up @@ -971,7 +963,7 @@ function postProcessMetadata(
const partialTwitter = resolveTwitter(
autoFillProps,
normalizeMetadataBase(metadata.metadataBase),
metadataContext,
isStaticMetadataRouteFile,
titleTemplates.twitter
)
if (metadata.twitter) {
Expand Down Expand Up @@ -1114,7 +1106,7 @@ export async function accumulateMetadata(
route: string,
metadataItems: MetadataItems,
pathname: Promise<string>,
metadataContext: MetadataContext
isStaticMetadataRouteFile: boolean
): Promise<ResolvedMetadata> {
let resolvedMetadata = createDefaultMetadata()

Expand Down Expand Up @@ -1173,7 +1165,7 @@ export async function accumulateMetadata(
resolvedMetadata = await mergeMetadata(route, pathname, {
resolvedMetadata,
metadata,
metadataContext,
isStaticMetadataRouteFile,
staticFilesMetadata,
titleTemplates,
buildState,
Expand Down Expand Up @@ -1220,7 +1212,7 @@ export async function accumulateMetadata(
resolvedMetadata,
favicon,
titleTemplates,
metadataContext
isStaticMetadataRouteFile
)
}

Expand Down Expand Up @@ -1267,7 +1259,6 @@ export async function resolveMetadata(
searchParams: Promise<ParsedUrlQuery>,
errorConvention: MetadataErrorType | undefined,
interpolatedParams: Params,
metadataContext: MetadataContext,
isRuntimePrefetchable: boolean
): Promise<ResolvedMetadata> {
const metadataItems = await resolveMetadataItems(
Expand All @@ -1281,11 +1272,15 @@ export async function resolveMetadata(
if (!workStore) {
throw new InvariantError('Expected workStore to be initialized')
}
// isStaticMetadataRouteFile is always false from external callers.
// mergeStaticMetadata overrides it to true internally when processing
// static metadata route files (opengraph-image, twitter-image, etc.).
const isStaticMetadataRouteFile = false
return accumulateMetadata(
workStore.route,
metadataItems,
pathname,
metadataContext
isStaticMetadataRouteFile
)
}

Expand Down
Loading
Loading