UNPKG

@mintlify/previewing

Version:

Preview Mintlify docs locally

26 lines (25 loc) 1.25 kB
import { optionallyAddLeadingSlash, SNIPPET_EXTENSIONS } from '@mintlify/common'; import { getFileListSync, preparseMdxTree } from '@mintlify/prebuild'; import { promises as _promises } from 'fs'; import { join } from 'path'; import { CMD_EXEC_PATH, NEXT_PUBLIC_PATH } from '../../constants.js'; const { readFile } = _promises; const getSnippetBase = async (BASE_DIR) => { const snippetFilenames = getFileListSync(BASE_DIR).filter((file) => SNIPPET_EXTENSIONS.some((ext) => file.endsWith(ext)) && file.startsWith('snippets/')); const promises = snippetFilenames.map(async (snippetFilename) => { try { const tree = await preparseMdxTree((await readFile(join(BASE_DIR, snippetFilename))).toString(), BASE_DIR, join(BASE_DIR, snippetFilename)); return { filename: optionallyAddLeadingSlash(snippetFilename), tree, }; } catch (err) { console.warn(`Error reading snippet file ${snippetFilename}`); return; } }); return (await Promise.all(promises)).filter(Boolean); }; export const getProcessedSnippets = () => getSnippetBase(NEXT_PUBLIC_PATH); export const getOriginalSnippets = () => getSnippetBase(CMD_EXEC_PATH);