import { getAllProjectsFromOrg } from '../lib/project'; import getConfig from 'next/config'; import { Hero } from '../components/Hero'; import { Container } from '../components/Container'; import { FiscalDataPackage } from '../lib/datapackage.interface'; import { loadDataPackage } from '../lib/loader'; import DatasetsSearch from '../components/DatasetsSearch'; import Layout from '../components/_shared/Layout'; export async function getStaticProps() { // TODO: support other orgs // const orgsListPath = path.join(process.cwd(), '/orgs.json'); // const orgs = await fs.readFile(orgsListPath, 'utf8'); const github_pat = getConfig().serverRuntimeConfig.github_pat; const allProjects = await getAllProjectsFromOrg( 'os-data', 'main', github_pat ); const projects = allProjects.results.map( (item: { datapackage: FiscalDataPackage & { repo: string }; repo: any }) => loadDataPackage(item.datapackage, item.repo) ); const availableCountries = projects .map((item) => item.countryCode) .filter((v) => v) // Filters false values .filter((v, i, a) => a.indexOf(v) === i) // Remove duplicates // TODO: title should be the full name .map((code) => ({ code, title: code })); return { props: { projects: JSON.stringify(projects), availableCountries, }, }; } export function Home({ projects, availableCountries }) { projects = JSON.parse(projects); return ( partialSum + a.files.length, 0 )} />

Datasets

Find spending data about countries all around the world.

); } export default Home;