import { htmlToText } from "html-to-text";
import type { HtmlToTextOptions } from "html-to-text";
import { Document } from "../document.js";
import { MappingDocumentTransformer } from "../schema/document.js";
/**
* A transformer that converts HTML content to plain text.
*/
export class HtmlToTextTransformer extends MappingDocumentTransformer {
static lc_name() {
return "HtmlToTextTransformer";
}
constructor(protected options: HtmlToTextOptions = {}) {
super(options);
}
async _transformDocument(document: Document): Promise {
const extractedContent = htmlToText(document.pageContent, this.options);
return new Document({
pageContent: extractedContent,
metadata: { ...document.metadata },
});
}
}