From 7231ddb1b3b14b5481bd233686b6de8703370f94 Mon Sep 17 00:00:00 2001
From: yisding <yi.s.ding@gmail.com>
Date: Tue, 30 Jan 2024 20:11:57 -0800
Subject: [PATCH] allow simpledirectoryreader to get a string (#488)

Co-authored-by: Alex Yang <himself65@outlook.com>
---
 .changeset/warm-monkeys-check.md              |  5 +++++
 .../core/src/readers/SimpleDirectoryReader.ts | 22 +++++++++++++------
 2 files changed, 20 insertions(+), 7 deletions(-)
 create mode 100644 .changeset/warm-monkeys-check.md

diff --git a/.changeset/warm-monkeys-check.md b/.changeset/warm-monkeys-check.md
new file mode 100644
index 000000000..65ca74b1f
--- /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 a6177381b..2dc053f34 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)
-- 
GitLab