Add additional optional input parameter for adding additional file loaders.

This commit is contained in:
rkeshwani
2023-08-11 00:20:04 +00:00
parent cd5f086b88
commit 177e7f5c0f
@@ -46,6 +46,13 @@ class Folder_DocumentLoaders implements INode {
type: 'json', type: 'json',
optional: true, optional: true,
additionalParams: true additionalParams: true
},
{
label: 'Additional File Loaders',
name: 'additionalLoaders',
type: 'json',
optional: true,
additionalParams: true
} }
] ]
} }
@@ -54,6 +61,8 @@ class Folder_DocumentLoaders implements INode {
const textSplitter = nodeData.inputs?.textSplitter as TextSplitter const textSplitter = nodeData.inputs?.textSplitter as TextSplitter
const folderPath = nodeData.inputs?.folderPath as string const folderPath = nodeData.inputs?.folderPath as string
const metadata = nodeData.inputs?.metadata const metadata = nodeData.inputs?.metadata
const additionalLoaders = nodeData.inputs?.additionalLoaders
const parsedLoaders = additionalLoaders ? ( typeof metadata === 'object' ? additionalLoaders: JSON.parse( additionalLoaders ) ) : []
const loader = new DirectoryLoader(folderPath, { const loader = new DirectoryLoader(folderPath, {
'.json': (path) => new JSONLoader(path), '.json': (path) => new JSONLoader(path),
@@ -61,7 +70,8 @@ class Folder_DocumentLoaders implements INode {
'.csv': (path) => new CSVLoader(path), '.csv': (path) => new CSVLoader(path),
'.docx': (path) => new DocxLoader(path), '.docx': (path) => new DocxLoader(path),
// @ts-ignore // @ts-ignore
'.pdf': (path) => new PDFLoader(path, { pdfjs: () => import('pdf-parse/lib/pdf.js/v1.10.100/build/pdf.js') }) '.pdf': (path) => new PDFLoader(path, { pdfjs: () => import('pdf-parse/lib/pdf.js/v1.10.100/build/pdf.js') }),
...parsedLoaders
}) })
let docs = [] let docs = []