From a63256eb84d58b15c6bdf507e6653b133c3d3669 Mon Sep 17 00:00:00 2001
From: Marcus Schiesser <mail@marcusschiesser.de>
Date: Wed, 24 Apr 2024 14:54:29 +0800
Subject: [PATCH] feat: add default file metadata (#758)

---
 .../core/src/readers/SimpleDirectoryReader.edge.ts     | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/packages/core/src/readers/SimpleDirectoryReader.edge.ts b/packages/core/src/readers/SimpleDirectoryReader.edge.ts
index face1fdd3..70123b153 100644
--- a/packages/core/src/readers/SimpleDirectoryReader.edge.ts
+++ b/packages/core/src/readers/SimpleDirectoryReader.edge.ts
@@ -1,6 +1,6 @@
 import type { CompleteFileSystem } from "@llamaindex/env";
 import { defaultFS, path } from "@llamaindex/env";
-import { Document } from "../Node.js";
+import { Document, type Metadata } from "../Node.js";
 import { walk } from "../storage/FileSystem.js";
 import { TextFileReader } from "./TextFileReader.js";
 import type { BaseReader } from "./type.js";
@@ -89,6 +89,7 @@ export class SimpleDirectoryReader implements BaseReader {
         }
 
         const fileDocs = await reader.loadData(filePath, fs);
+        fileDocs.forEach(addMetaData(filePath));
 
         // Observer can still cancel addition of the resulting docs from this file
         if (this.doObserverCheck("file", filePath, ReaderStatus.COMPLETE)) {
@@ -124,3 +125,10 @@ export class SimpleDirectoryReader implements BaseReader {
     return true;
   }
 }
+
+function addMetaData(filePath: string): (doc: Document<Metadata>) => void {
+  return (doc: Document<Metadata>) => {
+    doc.metadata["file_path"] = path.resolve(filePath);
+    doc.metadata["file_name"] = path.basename(filePath);
+  };
+}
-- 
GitLab