UNPKG

datocms-contentful-to-structured-text

Version:

Convert Contentful Rich Text to a valid DatoCMS Structured Text `dast` document

29 lines (22 loc) 675 B
import { Node, ContentfulNode, Context, ContentfulTextNode } from '../types'; import visitNode from './visit-node'; const visitChildren = async ( parentNode: Exclude<ContentfulNode, ContentfulTextNode>, context: Context, ): Promise<Node | Array<Node> | void> => { const nodes: ContentfulNode[] = Array.isArray(parentNode.content) ? parentNode.content : []; let values: Node[] = []; for (const node of nodes) { const result = await visitNode(node, { ...context, parentNode, }); if (result) { values = [...values, ...(Array.isArray(result) ? result : [result])]; } } return values; }; export default visitChildren;