Skip to content

Instantly share code, notes, and snippets.

@TimonVS
Created June 23, 2016 10:05
Show Gist options
  • Save TimonVS/b905d5e1215e892705652e07dde014d3 to your computer and use it in GitHub Desktop.
Save TimonVS/b905d5e1215e892705652e07dde014d3 to your computer and use it in GitHub Desktop.
const R = require('ramda')
const fetch = require('node-fetch')
const fetchJson = (f) => f.then(res => res.json())
const prepareGithubRequest = R.curry((accessToken, path) => fetchJson(fetch(`https://api.github.com/${path}?access_token=${accessToken}`)))
const fetchFromGithub = prepareGithubRequest(ACCESS_TOKEN)
const getReposFromOrg = org => fetchFromGithub(`orgs/${org}/repos`)
const getPopularRepos = R.compose(R.reverse, R.sortBy(R.prop('stargazers_count')), R.project(['name', 'stargazers_count', 'language']))
// R.composeP(getPopularRepos, getReposFromOrg)('awkward').then(console.log)
// Repos written in a specific language
const getReposWrittenIn = language => R.filter(R.compose(R.equals(language), R.toLower, R.prop('language')))
R.composeP(getReposWrittenIn('JavaScript'), getPopularRepos, getReposFromOrg)('awkward').then(console.log)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment