UNPKG

fumadocs-mdx

Version:

The built-in source for Fumadocs

72 lines (70 loc) 1.98 kB
import { _runtime, createMDXSource } from "../chunk-NUDEC6C5.js"; import { buildMDX } from "../chunk-HWSF4OGZ.js"; import "../chunk-3XN4P23K.js"; import { buildConfig } from "../chunk-XVL4ZQFK.js"; import "../chunk-KVWX6THC.js"; // src/runtime/async.ts import { executeMdx } from "@fumadocs/mdx-remote/client"; import { pathToFileURL } from "url"; async function getOptions(config, collection) { const col = config.collections.get(collection); if (col?.type === "doc" && col.mdxOptions) return col.mdxOptions; if (col?.type === "docs" && col.docs.mdxOptions) return col.docs.mdxOptions; return config.getDefaultMDXOptions("remote"); } var _runtimeAsync = { doc(files, collection, config) { const initMdxOptions = getOptions(config, collection); return files.map(({ info: file, data, content, lastModified }) => { return { ...data, _file: file, content, async load() { const mdxOptions = await initMdxOptions; const out = await buildMDX(collection, content, { ...mdxOptions, development: false, frontmatter: data, data: { lastModified }, filePath: file.absolutePath }); const executed = await executeMdx(String(out), { baseUrl: pathToFileURL(file.absolutePath) }); return { body: executed.default, toc: executed.toc, lastModified, structuredData: out.data.structuredData, _exports: executed }; } }; }); }, docs(docs, metas, collection, config) { const parsedDocs = this.doc(docs, collection, config); const parsedMetas = _runtime.meta(metas); return { docs: parsedDocs, meta: parsedMetas, toFumadocsSource() { return createMDXSource(parsedDocs, parsedMetas); } }; } }; export { _runtimeAsync, buildConfig };