diff options
Diffstat (limited to 'packages/integrations/mdx/src/utils.ts')
-rw-r--r-- | packages/integrations/mdx/src/utils.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/integrations/mdx/src/utils.ts b/packages/integrations/mdx/src/utils.ts index ccce179c9..7b2c4f4ec 100644 --- a/packages/integrations/mdx/src/utils.ts +++ b/packages/integrations/mdx/src/utils.ts @@ -1,4 +1,8 @@ import type { AstroConfig, SSRError } from 'astro'; +import type { Options as AcornOpts } from 'acorn'; +import type { MdxjsEsm } from 'mdast-util-mdx'; +import { parse } from 'acorn'; + import matter from 'gray-matter'; function appendForwardSlash(path: string) { @@ -58,3 +62,24 @@ export function getFrontmatter(code: string, id: string) { } } } + +export function jsToTreeNode( + jsString: string, + acornOpts: AcornOpts = { + ecmaVersion: 'latest', + sourceType: 'module', + } +): MdxjsEsm { + return { + type: 'mdxjsEsm', + value: '', + data: { + estree: { + body: [], + ...parse(jsString, acornOpts), + type: 'Program', + sourceType: 'module', + }, + }, + }; +} |