@mintlify/previewing
Version:
Preview Mintlify docs locally
26 lines (25 loc) • 1.25 kB
JavaScript
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);