diff --git a/packages/core/src/readers/SimpleDirectoryReader.edge.ts b/packages/core/src/readers/SimpleDirectoryReader.edge.ts index face1fdd3fa23c62c127cfebae42ced2997a3c38..70123b153d448582198ea1a68656732a86b92d70 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); + }; +}