diff options
author | 2023-06-06 13:40:04 -0400 | |
---|---|---|
committer | 2023-06-06 13:40:04 -0400 | |
commit | 2a4bb23b2f7f82b3fabdad4d64101fcc778acaa4 (patch) | |
tree | 7a013dd3d6df600eebe01a07d730dc8a55a1611e /packages/integrations/markdoc/components/TreeNode.ts | |
parent | f63d1d0c4d54bc643b41156f7f2a9b680ecc8904 (diff) | |
download | astro-2a4bb23b2f7f82b3fabdad4d64101fcc778acaa4.tar.gz astro-2a4bb23b2f7f82b3fabdad4d64101fcc778acaa4.tar.zst astro-2a4bb23b2f7f82b3fabdad4d64101fcc778acaa4.zip |
Fix missing styles and scripts on `document: {render:null}` (#7309)
* fix: propagate assets when using document `render: null`
* fix: reverse spread order
* refactor: use README rec in test
* chore: changeset
* chore: revert unneeded changes
Diffstat (limited to 'packages/integrations/markdoc/components/TreeNode.ts')
-rw-r--r-- | packages/integrations/markdoc/components/TreeNode.ts | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/packages/integrations/markdoc/components/TreeNode.ts b/packages/integrations/markdoc/components/TreeNode.ts index 8ad778063..082495a87 100644 --- a/packages/integrations/markdoc/components/TreeNode.ts +++ b/packages/integrations/markdoc/components/TreeNode.ts @@ -1,5 +1,4 @@ import type { AstroInstance } from 'astro'; -import { Fragment } from 'astro/jsx-runtime'; import type { RenderableTreeNode } from '@markdoc/markdoc'; import Markdoc from '@markdoc/markdoc'; import { @@ -106,18 +105,11 @@ export const ComponentNode = createComponent({ propagation: 'self', }); -export async function createTreeNode(node: RenderableTreeNode | RenderableTreeNode[]): TreeNode { +export async function createTreeNode(node: RenderableTreeNode): Promise<TreeNode> { if (isHTMLString(node)) { return { type: 'text', content: node as HTMLString }; } else if (typeof node === 'string' || typeof node === 'number') { return { type: 'text', content: String(node) }; - } else if (Array.isArray(node)) { - return { - type: 'component', - component: Fragment, - props: {}, - children: await Promise.all(node.map((child) => createTreeNode(child))), - }; } else if (node === null || typeof node !== 'object' || !Markdoc.Tag.isTag(node)) { return { type: 'text', content: '' }; } @@ -136,7 +128,7 @@ export async function createTreeNode(node: RenderableTreeNode | RenderableTreeNo }; } else if (isPropagatedAssetsModule(node.name)) { const { collectedStyles, collectedLinks, collectedScripts } = node.name; - const component = (await node.name.getMod())?.default ?? Fragment; + const component = (await node.name.getMod()).default; const props = node.attributes; return { @@ -160,7 +152,7 @@ export async function createTreeNode(node: RenderableTreeNode | RenderableTreeNo type PropagatedAssetsModule = { __astroPropagation: true; - getMod: () => Promise<AstroInstance['default']>; + getMod: () => Promise<AstroInstance>; collectedStyles: string[]; collectedLinks: string[]; collectedScripts: string[]; |