diff --git a/.changeset/warm-monkeys-check.md b/.changeset/warm-monkeys-check.md new file mode 100644 index 0000000000000000000000000000000000000000..65ca74b1f6b7d15beb19c4d8a869c9d832349561 --- /dev/null +++ b/.changeset/warm-monkeys-check.md @@ -0,0 +1,5 @@ +--- +"llamaindex": patch +--- + +feat: allow `SimpleDirectoryReader` to get a string diff --git a/packages/core/src/readers/SimpleDirectoryReader.ts b/packages/core/src/readers/SimpleDirectoryReader.ts index a6177381beb75bc25a78cadd35a1efa7fbdac3fc..2dc053f34ad67ad96c202dcb18f7a0635537af4e 100644 --- a/packages/core/src/readers/SimpleDirectoryReader.ts +++ b/packages/core/src/readers/SimpleDirectoryReader.ts @@ -49,7 +49,7 @@ export const FILE_EXT_TO_READER: Record<string, BaseReader> = { gif: new ImageReader(), }; -export type SimpleDirectoryReaderLoadDataProps = { +export type SimpleDirectoryReaderLoadDataParams = { directoryPath: string; fs?: CompleteFileSystem; defaultReader?: BaseReader | null; @@ -64,12 +64,20 @@ export type SimpleDirectoryReaderLoadDataProps = { export class SimpleDirectoryReader implements BaseReader { constructor(private observer?: ReaderCallback) {} - async loadData({ - directoryPath, - fs = defaultFS, - defaultReader = new TextFileReader(), - fileExtToReader = FILE_EXT_TO_READER, - }: SimpleDirectoryReaderLoadDataProps): Promise<Document[]> { + async loadData( + params: SimpleDirectoryReaderLoadDataParams | string, + ): Promise<Document[]> { + if (typeof params === "string") { + params = { directoryPath: params }; + } + + const { + directoryPath, + fs = defaultFS, + defaultReader = new TextFileReader(), + fileExtToReader = FILE_EXT_TO_READER, + } = params; + // Observer can decide to skip the directory if ( !this.doObserverCheck("directory", directoryPath, ReaderStatus.STARTED)