import type { RTTextNode, RichTextField } from "../types/value/richText"

/**
 * Converts a rich text field to a plain text string.
 *
 * @param richTextField - A rich text field from Prismic.
 * @param separator - Separator used to join each element. Defaults to a space.
 * @returns Plain text equivalent of the rich text field.
 * @see Learn how to work with rich text fields: {@link https://prismic.io/docs/fields/rich-text}
 */
export const asText = (richTextField: RichTextField, separator = " "): string => {
	let result = ""

	for (let i = 0; i < richTextField.length; i++) {
		if ("text" in richTextField[i]) {
			result += (result ? separator : "") + (richTextField[i] as RTTextNode).text
		}
	}

	return result
}
