import fs from 'fs'; import path from 'path'; import matter from 'gray-matter'; type Training = { metadata: { id: string; name: string; slug: string; days: number; weight: number; draft?: boolean; logoURL?: string; svgIconURL?: string; repositoryURL?: string; priceOpen: number; priceCorporate: number; }; content: string; }; export type { Training }; const root = process.cwd(); export async function getTrainingFiles() { return fs.readdirSync(path.join(root, 'content', 'training'), 'utf-8'); } export async function getTrainingBySlug(slug: string, fields: string[] = []) { const source = fs.readFileSync(path.join(root, 'content', 'training', `${slug}.md`), 'utf8'); const { data, content } = matter(source); return { metadata: data, content: content, }; } export async function getAllTrainingsWithMetadata(): Promise { const files = fs.readdirSync(path.join(root, 'content', 'training')) // @ts-ignore return files.reduce((allTrainings, fileName) => { const source = fs.readFileSync(path.join(root, 'content', 'training', fileName), 'utf8'); const { data, content } = matter(source); return [ { metadata: data, content: content, }, ...allTrainings, ] }, []) }