1.0.0 • Published 5 years ago
foliohub-core v1.0.0
FolioHub Core
Overview
Provide the function to fetch for portfolio data through GitHub's API.
Attension!
Because this program is under development, those data structure may be changed.
Feature
- Provide only necessary data to make to a portfolio
- Get title and thumbnail from README
- Cache the some ajax requests
Install
$ npm install --save foliohub-core
Usage
import FoliohubCore from 'foliohub-core';
// const FoliohubCore = require('foliohub-core');
FoliohubCore.repositories.then(repositories => {
console.log('repositories', repositories);
});
Methods
Fetch repositories
Provide a list of repositories.
FoliohubCore.repositories('username', [options])
Options
{
includeDetail: true,
filter: {
topics: 'topics name' // If even one is included
}
}
Output data structure
[
{
"title": "Foliohub Core", // H1 title in the README.md
"image": "http://example.com/image.jpg", // If the README.md has a reference image
"name": "foliohub-core",
"ownerName": "passionate-engineer",
"description": "Description",
"homepage": "https://example.com",
"language": "javascript",
"createdAt": "2019-01-18T10:51:22Z",
"updatedAt": "2019-01-18T10:53:06Z",
}
]
Example
FoliohubCore.repositories('passionate-engineer', {includeDetail: true, filter: {topics: 'products'}}).then(repositories => {
console.log('repositories', repositories);
});
async/await
(async () => {
const repositories = await FoliohubCore.repositories('passionate-engineer', {includeDetail: true, filter: {topics: 'products'}});
console.log('repositories', repositories);
})();
Fetch repository detail
Provide repository detail.
FoliohubCore.repository('username', 'repository name', [options])
Options
{
includeDetail: true,
filter: {
topics: 'topics name'
}
}
Output data structure
{
"title": "Foliohub Core", // H1 title in the README.md
"readme": "# Foliohub Core ##...",
"image": "http://example.com/image.jpg", // If the README.md has a reference image
"name": "foliohub-core",
"ownerName": "passionate-engineer",
"description": "Description",
"homepage": "https://example.com",
"language": "javascript",
"createdAt": "2019-01-18T10:51:22Z",
"updatedAt": "2019-01-18T10:53:06Z"
}
Example
FoliohubCore.repository('passionate-engineer', 'foliohub-core', {includeDetail: true}).then(repository => {
console.log('repository', repository);
});
async/await
(async () => {
const repository = await FoliohubCore.repository('passionate-engineer', 'foliohub-core', {includeDetail: true});
console.log('repository', repository);
})();
Fetch user infomations
Provide user infomations.
FoliohubCore.user('username')
Output data structure
{
"avatarUrl": "https://avatars3.githubusercontent.com/u/38520088?v=4",
"name": "Passionate Engineer Ryoju",
"company": "Company",
"location": "Location",
"email": "email@example.com",
"bio": "User descrption"
}
Example
FoliohubCore.user('passionate-engineer').then(user => {
console.log('user', user);
});
async/await
(async () => {
const user = await FoliohubCore.user('passionate-engineer');
console.log('user', user);
})();