Skip to content

Commit e3074d9

Browse files
authored
fix: detect language error on /_next/data/ input (#22419)
1 parent 5100b55 commit e3074d9

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

middleware/detect-language.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function getUserLanguage(browserLanguages) {
3636

3737
// determine language code from a path. Default to en if no valid match
3838
export function getLanguageCodeFromPath(path) {
39-
const maybeLanguage = path.split('/')[path.startsWith('/_next/data/') ? 4 : 1].slice(0, 2)
39+
const maybeLanguage = (path.split('/')[path.startsWith('/_next/data/') ? 4 : 1] || '').slice(0, 2)
4040
return languageCodes.includes(maybeLanguage) ? maybeLanguage : 'en'
4141
}
4242

tests/unit/detect-language.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ describe('detect-language - getLanguageCodeFromPath', () => {
66
expect(getLanguageCodeFromPath('/_next/data/development/ja/articles/foo')).toBe('ja')
77
})
88

9+
test('should not error on /_next/data/ input', () => {
10+
expect(getLanguageCodeFromPath('/_next/data/')).toBe('en')
11+
})
12+
913
test('should return for paths with an extension', () => {
1014
expect(getLanguageCodeFromPath('/ja.json')).toBe('ja')
1115
expect(getLanguageCodeFromPath('/_next/data/development/ja.json')).toBe('ja')

0 commit comments

Comments
 (0)