diff options
Diffstat (limited to 'packages/integrations/mdx/src/astro-data-utils.ts')
-rw-r--r-- | packages/integrations/mdx/src/astro-data-utils.ts | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/packages/integrations/mdx/src/astro-data-utils.ts b/packages/integrations/mdx/src/astro-data-utils.ts index 3300c7b55..7c7f6119b 100644 --- a/packages/integrations/mdx/src/astro-data-utils.ts +++ b/packages/integrations/mdx/src/astro-data-utils.ts @@ -1,6 +1,4 @@ import type { MarkdownAstroData } from 'astro'; -import { name as isValidIdentifierName } from 'estree-util-is-identifier-name'; -import type { MdxjsEsm } from 'mdast-util-mdx'; import type { Data, VFile } from 'vfile'; import { jsToTreeNode } from './utils.js'; @@ -12,35 +10,13 @@ export function remarkInitializeAstroData() { }; } -export function rehypeApplyFrontmatterExport( - pageFrontmatter: Record<string, any>, - exportName = 'frontmatter' -) { +const EXPORT_NAME = 'frontmatter'; + +export function rehypeApplyFrontmatterExport(pageFrontmatter: Record<string, any>) { return function (tree: any, vfile: VFile) { - if (!isValidIdentifierName(exportName)) { - throw new Error( - `[MDX] ${JSON.stringify( - exportName - )} is not a valid frontmatter export name! Make sure "frontmatterOptions.name" could be used as a JS export (i.e. "export const frontmatterName = ...")` - ); - } const { frontmatter: injectedFrontmatter } = safelyGetAstroData(vfile.data); const frontmatter = { ...injectedFrontmatter, ...pageFrontmatter }; - let exportNodes: MdxjsEsm[] = []; - if (!exportName) { - exportNodes = Object.entries(frontmatter).map(([k, v]) => { - if (!isValidIdentifierName(k)) { - throw new Error( - `[MDX] A remark or rehype plugin tried to inject ${JSON.stringify( - k - )} as a top-level export, which is not a valid export name.` - ); - } - return jsToTreeNode(`export const ${k} = ${JSON.stringify(v)};`); - }); - } else { - exportNodes = [jsToTreeNode(`export const ${exportName} = ${JSON.stringify(frontmatter)};`)]; - } + const exportNodes = [jsToTreeNode(`export const ${EXPORT_NAME} = ${JSON.stringify(frontmatter)};`)]; tree.children = exportNodes.concat(tree.children); }; } |