Skip to content

Commit 406ed68

Browse files
committed
refactor filenames const to a shared location and rename method
1 parent de5132f commit 406ed68

1 file changed

Lines changed: 25 additions & 26 deletions

File tree

server/api/registry/readme/[...pkg].get.ts

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,12 @@ import {
1212
*/
1313
async function fetchReadmeFromJsdelivr(
1414
packageName: string,
15+
readmeFilenames: string[],
1516
version?: string,
1617
): Promise<string | null> {
17-
const filenames = [
18-
`README.${navigator.language}.md`,
19-
'README.md',
20-
'readme.md',
21-
'Readme.md',
22-
'README',
23-
'readme',
24-
'README.markdown',
25-
'readme.markdown',
26-
]
2718
const versionSuffix = version ? `@${version}` : ''
2819

29-
for (const filename of filenames) {
20+
for (const filename of readmeFilenames) {
3021
try {
3122
const url = `https://cdn.jsdelivr.net/npm/${packageName}${versionSuffix}/${filename}`
3223
const response = await fetch(url)
@@ -80,13 +71,29 @@ export default defineCachedEventHandler(
8071
readmeContent = packageData.readme
8172
}
8273

74+
const standardReadmeFilenames = [
75+
'README.md',
76+
'readme.md',
77+
'Readme.md',
78+
'README',
79+
'readme',
80+
'README.markdown',
81+
'readme.markdown',
82+
]
83+
8384
// If no README in packument, try fetching from jsdelivr (package tarball)
8485
if (
8586
!readmeContent ||
8687
readmeContent === NPM_MISSING_README_SENTINEL ||
87-
!readmeFilenameMatchesLocale(packageData.readmeFilename)
88+
!isPreferredReadme(packageData.readmeFilename, standardReadmeFilenames)
8889
) {
89-
readmeContent = (await fetchReadmeFromJsdelivr(packageName, version)) ?? undefined
90+
const locale = navigator.language
91+
readmeContent =
92+
(await fetchReadmeFromJsdelivr(
93+
packageName,
94+
[`README.${locale}.md`, ...standardReadmeFilenames],
95+
version,
96+
)) ?? undefined
9097
}
9198

9299
if (!readmeContent) {
@@ -114,20 +121,12 @@ export default defineCachedEventHandler(
114121
},
115122
)
116123

117-
function readmeFilenameMatchesLocale(filename: string | undefined): boolean {
124+
function isPreferredReadme(
125+
filename: string | undefined,
126+
standardReadmeFilenames: string[],
127+
): boolean {
118128
if (!filename) {
119129
return false
120130
}
121-
122-
const filenames = [
123-
'README.md',
124-
'readme.md',
125-
'Readme.md',
126-
'README',
127-
'readme',
128-
'README.markdown',
129-
'readme.markdown',
130-
]
131-
132-
return filenames.includes(filename) || filename.includes(navigator.language)
131+
return standardReadmeFilenames.includes(filename) || filename.includes(navigator.language)
133132
}

0 commit comments

Comments
 (0)