Skip to content

Commit

Permalink
v2 (#2)
Browse files Browse the repository at this point in the history
v2
  • Loading branch information
zillding committed Jul 27, 2019
2 parents 3e3bd3a + 198e152 commit 7c43020
Show file tree
Hide file tree
Showing 5 changed files with 920 additions and 1,370 deletions.
13 changes: 5 additions & 8 deletions cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ const chalk = require("chalk");
const fuzzy = require("fuzzy");
const inquirer = require("inquirer");
const meow = require("meow");
const opn = require("opn");
const open = require("open");
const ora = require("ora");
const updateNotifier = require("update-notifier");
const escExit = require("esc-exit");

const pkg = require("./package.json");
const getRepos = require("./getRepos");
Expand Down Expand Up @@ -59,11 +60,10 @@ function handleUsername(username) {
type: "autocomplete",
name: "url",
message: "Select a github page:",
source: (_, input) =>
Promise.resolve().then(() => filterRepos(input, result))
source: (_, input) => Promise.resolve(filterRepos(input, result))
};
inquirer.prompt([question]).then(answer => {
opn(answer.url, { wait: false });
open(answer.url);
});
})
.catch(err => {
Expand All @@ -85,10 +85,7 @@ function handleInit() {
}

function init(username) {
process.stdin.on("keypress", (_, key) => {
if (key && key.name === "escape") process.exit();
});

escExit();
if (username) return handleUsername(username);
return handleInit();
}
Expand Down
41 changes: 20 additions & 21 deletions getRepos.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,30 @@
const filledArray = require("filled-array");
const GitHubApi = require("github");
const octokit = require("@octokit/rest")();

const github = new GitHubApi({ Promise });

function getNumberOfRepos(username) {
return github.users
.getForUser({ username })
.then(res => res.data.public_repos);
async function getNumberOfRepos(username) {
const response = await octokit.users.getByUsername({ username });
return response.data.public_repos;
}

function getReposForUser(username, number) {
const per_page = 30;
async function getReposForUser(username, number) {
const per_page = 100;
const pages = Math.ceil(number / per_page);

const promises = filledArray(1, 3).map((_, index) =>
github.repos
.getForUser({ username, page: index + 1, per_page })
.then(res => res.data)
const values = await Promise.all(
[...Array(pages).keys()].map(async index => {
const response = await octokit.repos.listForUser({
username,
page: index + 1,
per_page
});
return response.data;
})
);

return Promise.all(promises).then(values =>
values.reduce((a, current) => a.concat(current), [])
);
return values.reduce((a, current) => a.concat(current), []);
}

module.exports = function getRepos(username) {
return getNumberOfRepos(username).then(number =>
getReposForUser(username, number)
);
module.exports = async function(username) {
const numberOfRepos = await getNumberOfRepos(username);
const repos = await getReposForUser(username, numberOfRepos);
return repos;
};
Loading

0 comments on commit 7c43020

Please sign in to comment.