async function* fetchStargazers({ name, token, delay = 150, maxPage = Infinity } = {}) {
const [repo] = parseName(name);
let url = `https://api.github.com/repos/${repo}/stargazers?per_page=100&page=1`;
let headers = {
...(token && { Authorization: `token ${token}` }),
accept: "application/vnd.github.v3.star+json"
};
const stargazers = [];
yield stargazers;
let page = 0;
while (url && (++page <= maxPage)) {
const response = await fetch(`${url}`, {headers});
if (!response.ok) throw new Error(response.status);
for (const stargazer of await response.json()) stargazers.push(coerceStargazer(stargazer));
yield stargazers;
url = findRelLink(response.headers, "next");
await Promises.delay(delay);
}
}