Skip to content

Commit 466fcf9

Browse files
committed
perf: 更新getUserAllRepos
1 parent dbea0c6 commit 466fcf9

1 file changed

Lines changed: 22 additions & 7 deletions

File tree

github-repository-navigator/github-repository-navigator.user.js

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -526,24 +526,39 @@ async function getUserAllRepos(href, header = {}, getAll = false, maxPage = 0) {
526526
try {
527527
let allRepos = []
528528
let page = 1
529-
let perPage = 100
530-
do {
531-
const url = getAll ? `${href}?per_page=${perPage}&page=${page}` : href//NOTE - false时,就获取前30个就行了 ,够用了 仓库没那么多,列表太长也不好。
529+
const perPage = 100
530+
531+
if (!getAll) {
532+
533+
const url = `${href}?per_page=${perPage}&page=1`//如果不需要获取所有仓库,直接请求第一页数据
534+
const response = await fetch(url, { headers: header })
535+
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)
536+
const repos = await response.json()
537+
return repos.length > 0 ? repos : allRepos // 返回第一页数据
538+
}
539+
540+
while (true) {
541+
const url = `${href}?per_page=${perPage}&page=${page}`
532542
const response = await fetch(url, { headers: header })
533543
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)
534544
const repos = await response.json()
535-
if (repos.length === 0) break
545+
546+
if (repos.length === 0) break // 如果没有更多数据,退出循环
547+
536548
allRepos = allRepos.concat(repos)
537-
page++
538-
// 如果设定了最大页数并且已经达到了最大页数,结束战斗
549+
page++ // 增加页数
550+
551+
// 如果设定了最大页数并且已经达到了最大页数,结束循环
539552
if (maxPage !== 0 && page > maxPage) break
540-
} while (getAll)
553+
}
554+
541555
return allRepos
542556
} catch (error) {
543557
console.error('Fetch error:', error)
544558
throw error
545559
}
546560
}
561+
547562
function fetchReposWithCache(ownerKey, reposApi, headers) {
548563
const localData = localStorage.getItem(ownerKey)
549564
const currentTime = new Date().getTime()

0 commit comments

Comments
 (0)