@@ -74,13 +74,12 @@ export default function getAlternateLinksHeaderValue<
74
74
75
75
function getLocalizedPathname ( pathname : string , locale : AppLocales [ number ] ) {
76
76
if ( localizedPathnames && typeof localizedPathnames === 'object' ) {
77
- if ( localizedPathnames [ locale ] === null ) return ;
78
77
const sourceTemplate = localizedPathnames [ resolvedLocale ] ;
79
78
80
79
return formatTemplatePathname (
81
80
pathname ,
82
- sourceTemplate ?? internalTemplateName ?? pathname ,
83
- localizedPathnames [ locale ] ?? internalTemplateName ?? pathname
81
+ sourceTemplate ?? internalTemplateName ! ,
82
+ localizedPathnames [ locale ] ?? internalTemplateName !
84
83
) ;
85
84
} else {
86
85
return pathname ;
@@ -91,69 +90,59 @@ export default function getAlternateLinksHeaderValue<
91
90
routing . locales as AppLocales ,
92
91
routing . localePrefix ,
93
92
false
94
- )
95
- . flatMap ( ( [ locale , prefix ] ) => {
96
- function prefixPathname ( pathname : string ) {
97
- if ( pathname === '/' ) {
98
- return prefix ;
99
- } else {
100
- return prefix + pathname ;
101
- }
93
+ ) . flatMap ( ( [ locale , prefix ] ) => {
94
+ function prefixPathname ( pathname : string ) {
95
+ if ( pathname === '/' ) {
96
+ return prefix ;
97
+ } else {
98
+ return prefix + pathname ;
102
99
}
100
+ }
103
101
104
- let url : URL ;
105
-
106
- if ( routing . domains ) {
107
- const domainConfigs = routing . domains . filter ( ( cur ) =>
108
- isLocaleSupportedOnDomain ( locale , cur )
109
- ) ;
110
-
111
- return domainConfigs . map ( ( domainConfig ) => {
112
- const pathname = getLocalizedPathname ( normalizedUrl . pathname , locale ) ;
113
- if ( ! pathname ) return undefined ;
102
+ let url : URL ;
114
103
115
- url = new URL ( normalizedUrl ) ;
116
- url . port = '' ;
117
- url . host = domainConfig . domain ;
104
+ if ( routing . domains ) {
105
+ const domainConfigs = routing . domains . filter ( ( cur ) =>
106
+ isLocaleSupportedOnDomain ( locale , cur )
107
+ ) ;
118
108
119
- // Important: Use `normalizedUrl` here, as `url` potentially uses
120
- // a `basePath` that automatically gets applied to the pathname
121
- url . pathname = pathname ;
109
+ return domainConfigs . map ( ( domainConfig ) => {
110
+ url = new URL ( normalizedUrl ) ;
111
+ url . port = '' ;
112
+ url . host = domainConfig . domain ;
122
113
123
- if (
124
- locale !== domainConfig . defaultLocale ||
125
- routing . localePrefix . mode === 'always'
126
- ) {
127
- url . pathname = prefixPathname ( url . pathname ) ;
128
- }
129
-
130
- return getAlternateEntry ( url , locale ) ;
131
- } ) ;
132
- } else {
133
- let pathname : string ;
134
- if ( localizedPathnames && typeof localizedPathnames === 'object' ) {
135
- const candidate = getLocalizedPathname (
136
- normalizedUrl . pathname ,
137
- locale
138
- ) ;
139
- if ( ! candidate ) return undefined ;
140
- pathname = candidate ;
141
- } else {
142
- pathname = normalizedUrl . pathname ;
143
- }
114
+ // Important: Use `normalizedUrl` here, as `url` potentially uses
115
+ // a `basePath` that automatically gets applied to the pathname
116
+ url . pathname = getLocalizedPathname ( normalizedUrl . pathname , locale ) ;
144
117
145
118
if (
146
- locale !== routing . defaultLocale ||
119
+ locale !== domainConfig . defaultLocale ||
147
120
routing . localePrefix . mode === 'always'
148
121
) {
149
- pathname = prefixPathname ( pathname ) ;
122
+ url . pathname = prefixPathname ( url . pathname ) ;
150
123
}
151
- url = new URL ( pathname , normalizedUrl ) ;
124
+
125
+ return getAlternateEntry ( url , locale ) ;
126
+ } ) ;
127
+ } else {
128
+ let pathname : string ;
129
+ if ( localizedPathnames && typeof localizedPathnames === 'object' ) {
130
+ pathname = getLocalizedPathname ( normalizedUrl . pathname , locale ) ;
131
+ } else {
132
+ pathname = normalizedUrl . pathname ;
152
133
}
153
134
154
- return getAlternateEntry ( url , locale ) ;
155
- } )
156
- . filter ( ( link ) => link != null ) ;
135
+ if (
136
+ locale !== routing . defaultLocale ||
137
+ routing . localePrefix . mode === 'always'
138
+ ) {
139
+ pathname = prefixPathname ( pathname ) ;
140
+ }
141
+ url = new URL ( pathname , normalizedUrl ) ;
142
+ }
143
+
144
+ return getAlternateEntry ( url , locale ) ;
145
+ } ) ;
157
146
158
147
// Add x-default entry
159
148
const shouldAddXDefault =
0 commit comments