1
1
Fork 0
portfolio/src/discoverJSONData.js
2018-12-30 23:31:45 -06:00

60 lines
1.3 KiB
JavaScript

const { join } = require('path');
const { readdir, readJson } = require('fs-extra');
const marked = require('marked');
const requestGithub = require('./request');
const schema = require('./schema');
const pagesPath = './src/pages';
const getPinnedRepoJSONs = async () => {
let {
data: {
viewer: {
pinnedRepositories: {
edges: pinnedRepoData
}
}
}
} = await requestGithub(schema);
return pinnedRepoData.map(data => {
if (data.node.readme && data.node.readme.text) {
data.node.readme.html = marked(data.node.readme.text);
}
return data.node;
});
};
const getStaticPageJSONs = async () => {
let fileNames;
let filesJSON;
try {
fileNames = await readdir(pagesPath);
} catch (error) {
console.error(error);
return;
}
let readFilesPromises = fileNames.map(fileName => {
let filePath = join(pagesPath, fileName);
return readJson(filePath);
});
try {
let allData = await Promise.all(readFilesPromises);
return allData.map(data => {
if (data.readme && data.readme.text) {
data.readme.html = marked(data.readme.text);
}
return data;
});
} catch (error) {
console.error('Error while reading JSON', error);
return;
}
};
module.exports = {
getPinnedRepoJSONs,
getStaticPageJSONs,
};