import type { MinimalElement, MinimalNode } from '@nuxt/content'

const extractText = (element ?: MinimalNode) : string => {
  if (!element) return ''
  if (typeof element === 'string') return element
  const [,, ...nodes] = element
  return nodes?.map((el : MinimalNode) => typeof el === 'string' ? el : extractText(el)).join(' ') ?? ''
}

export const usePlainFaq = (body ?: MinimalNode[]) => {
  if (!body) return []
  return body.map(part => {
    const [, meta] = part as MinimalElement
    return {
      question: meta.title,
      answer: extractText(part).replace(/\n/g, ' ')
    }
  })
}

