Add pagination support

master
Gitea 2021-08-25 12:22:33 +02:00
parent 82d933f08b
commit 3ee71db577
1 changed files with 22 additions and 9 deletions

31
mod.js
View File

@ -1,11 +1,24 @@
const
packageName = Deno.env.get('PACKAGE'),
token = Deno.env.get('TOKEN');
console.log(JSON.stringify((await (await fetch(`https://api.github.com/search/code?q=${packageName}+in:file+filename:package.json`, {
headers: {
'Authorization': `token ${token}`
}
})).json())['items'].map(item => ({
repoName: item['repository']['full_name'],
fileUrl: item['html_url']
})), null, 4));
token = Deno.env.get('TOKEN'),
result = [],
fetchResults = async page => {
const data = await (await fetch(`https://api.github.com/search/code?q=${packageName}+in:file+filename:package.json&per_page=100&page=${page}`, {
headers: {
'Authorization': `token ${token}`
}
})).json();
result.push(...data['items'].map(item => ({
repoName: item['repository']['full_name'],
fileUrl: item['html_url']
})));
return data['total_count'];
};
let resultCount, page = 1;
do { resultCount = await fetchResults(page++); }
while (result.length !== resultCount);
for(let i = result.length - 1; i > 0; i--){
if(result.findIndex(item => item.repoName === result[i].repoName) !== i)
result.splice(i, 1);
}
console.log(JSON.stringify(result, null, 4));