UNPKG

@mintlify/prebuild

Version:

Helpful functions for Mintlify's prebuild step

34 lines (33 loc) 1.36 kB
import { isUpdate, processUpdateNode, UPDATE_MAX } from '@mintlify/common'; import fse from 'fs-extra'; import { docsConfigToRss } from '../rss/docsConfigToRss.js'; import { pageToRss } from '../rss/pageToRss.js'; import { pathToRss } from '../rss/pathToRss.js'; export const writeRssFiles = async (docsConfig, rssPages) => { const { orgName, orgDescription } = docsConfigToRss(docsConfig); const rssTargetPath = 'src/_props/rssFiles.json'; const rssItemsToSave = rssPages.map((page) => { const { targetPath, tree } = page; const { title, description } = pageToRss(tree); const rssPath = pathToRss(targetPath); const pageUpdateComponents = tree.children.filter((child) => isUpdate(child)); const updates = []; for (const update of pageUpdateComponents) { const newUpdates = processUpdateNode({ updateNode: update, date: new Date().toISOString() }); updates.push(...newUpdates); } const trimmedUpdates = updates.slice(0, UPDATE_MAX); return { rssPath, orgName, orgDescription, title, description, updates: trimmedUpdates, }; }); await fse.remove(rssTargetPath); await fse.outputFile(rssTargetPath, JSON.stringify(rssItemsToSave), { flag: 'w', }); };