mirror of
https://github.com/tiennm99/github-readme-stats.git
synced 2026-05-20 16:23:41 +00:00
feat: added "exclude_repo" option to Top Langs (#493)
* 🚀 Added "exclude_repo" option to Top Langs * chore: code style update Co-authored-by: Anurag <hazru.anurag@gmail.com>
This commit is contained in:
@@ -11,6 +11,7 @@ const fetcher = (variables, token) => {
|
||||
# fetch only owner repos & not forks
|
||||
repositories(ownerAffiliations: OWNER, isFork: false, first: 100) {
|
||||
nodes {
|
||||
name
|
||||
languages(first: 10, orderBy: {field: SIZE, direction: DESC}) {
|
||||
edges {
|
||||
size
|
||||
@@ -33,7 +34,7 @@ const fetcher = (variables, token) => {
|
||||
);
|
||||
};
|
||||
|
||||
async function fetchTopLanguages(username, langsCount = 5) {
|
||||
async function fetchTopLanguages(username, langsCount = 5, exclude_repo = []) {
|
||||
if (!username) throw Error("Invalid username");
|
||||
|
||||
langsCount = clampValue(parseInt(langsCount), 1, 10);
|
||||
@@ -46,6 +47,22 @@ async function fetchTopLanguages(username, langsCount = 5) {
|
||||
}
|
||||
|
||||
let repoNodes = res.data.data.user.repositories.nodes;
|
||||
let repoToHide = {};
|
||||
|
||||
// populate repoToHide map for quick lookup
|
||||
// while filtering out
|
||||
if (exclude_repo) {
|
||||
exclude_repo.forEach((repoName) => {
|
||||
repoToHide[repoName] = true;
|
||||
});
|
||||
}
|
||||
|
||||
// filter out repositories to be hidden
|
||||
repoNodes = repoNodes
|
||||
.sort((a, b) => b.size - a.size)
|
||||
.filter((name) => {
|
||||
return !repoToHide[name.name];
|
||||
});
|
||||
|
||||
repoNodes = repoNodes
|
||||
.filter((node) => {
|
||||
|
||||
Reference in New Issue
Block a user