export function processDocuments()

in library/markdown-parser/handlers/document.ts [29:61]


export function processDocuments(): { releases: BriefRelease[] } {
  if (fs.existsSync(docsDist)) {
    fs.rmSync(docsDist, { force: true, recursive: true });
  }
  mkdirSync(docsDist, { recursive: true });

  if (!fs.existsSync(releasesSource)) {
    mkdirSync(releasesSource, { recursive: true });
  }

  const releases: ResolvedDocument[] = [];
  const downloads = parseDocumentFromBuffer('downloads', readFileSync(`${downloadsSource}/downloads.md`));
  const resolvedDownloads = resolveDocument(downloads);
  writeFileSync(`${docsDist}/downloads.json`, JSON.stringify(resolvedDownloads));

  readdirSync(releasesSource).forEach(file => {
    const { name } = parseFileName(file);
    const release = parseDocumentFromBuffer(name, readFileSync(`${releasesSource}/${name}.md`));
    const resolvedRelease = resolveDocument(release);
    releases.push(resolvedRelease);
  });

  releases.forEach(release => writeFileSync(`${docsDist}/${release.version}.json`, JSON.stringify(release)));

  // sort by weight
  const briefReleases = releases
    .sort((a, b) => b.weight - a.weight)
    .map(release => new BriefRelease(release.title, release.version));

  writeFileSync(`${docsDist}/releases.json`, JSON.stringify(briefReleases));

  return { releases: briefReleases };
}