@mintlify/prebuild
Version:
Helpful functions for Mintlify's prebuild step
34 lines (33 loc) • 1.36 kB
JavaScript
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',
});
};