import { RecursiveCharacterTextSplitter, TextSplitter, } from "../text_splitter.js"; import { Document } from "../document.js"; export interface DocumentLoader { load(): Promise; loadAndSplit(textSplitter?: TextSplitter): Promise; } export abstract class BaseDocumentLoader implements DocumentLoader { abstract load(): Promise; async loadAndSplit( splitter: TextSplitter = new RecursiveCharacterTextSplitter() ): Promise { const docs = await this.load(); return splitter.splitDocuments(docs); } }