mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 21:00:58 +03:00
Added more error checking and also fixed yet more build errors
This commit is contained in:
@@ -124,6 +124,10 @@ class Airtable_DocumentLoaders implements INode {
|
|||||||
|
|
||||||
const loader = new AirtableLoader(airtableOptions)
|
const loader = new AirtableLoader(airtableOptions)
|
||||||
|
|
||||||
|
if (!baseId || !tableId) {
|
||||||
|
throw new Error('Base ID and Table ID must be provided.')
|
||||||
|
}
|
||||||
|
|
||||||
let docs = []
|
let docs = []
|
||||||
|
|
||||||
if (textSplitter) {
|
if (textSplitter) {
|
||||||
@@ -213,7 +217,7 @@ class AirtableLoader extends BaseDocumentLoader {
|
|||||||
return this.loadLimit()
|
return this.loadLimit()
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async fetchAirtableData(url: string, data: any): Promise<AirtableLoaderResponse> {
|
protected async fetchAirtableData(url: string, data: AirtableLoaderRequest): Promise<AirtableLoaderResponse> {
|
||||||
try {
|
try {
|
||||||
const headers = {
|
const headers = {
|
||||||
Authorization: `Bearer ${this.accessToken}`,
|
Authorization: `Bearer ${this.accessToken}`,
|
||||||
@@ -223,7 +227,11 @@ class AirtableLoader extends BaseDocumentLoader {
|
|||||||
const response = await axios.post(url, data, { headers })
|
const response = await axios.post(url, data, { headers })
|
||||||
return response.data
|
return response.data
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw new Error(`Failed to fetch ${url} from Airtable: ${error}`)
|
if (axios.isAxiosError(error)) {
|
||||||
|
throw new Error(`Failed to fetch ${url} from Airtable: ${error.message}, status: ${error.response?.status}`)
|
||||||
|
} else {
|
||||||
|
throw new Error(`Failed to fetch ${url} from Airtable: ${error}`)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,7 +267,7 @@ class AirtableLoader extends BaseDocumentLoader {
|
|||||||
|
|
||||||
private async loadAll(): Promise<Document[]> {
|
private async loadAll(): Promise<Document[]> {
|
||||||
let data: AirtableLoaderRequest = {
|
let data: AirtableLoaderRequest = {
|
||||||
pageSize: this.limit,
|
maxRecords: this.limit,
|
||||||
view: this.viewId
|
view: this.viewId
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,7 +280,7 @@ class AirtableLoader extends BaseDocumentLoader {
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
response = await this.fetchAirtableData(`https://api.airtable.com/v0/${this.baseId}/${this.tableId}`, data)
|
response = await this.fetchAirtableData(`https://api.airtable.com/v0/${this.baseId}/${this.tableId}`, data)
|
||||||
returnPages.push.apply(returnPages, response.records)
|
returnPages.push(...response.records)
|
||||||
data.offset = response.offset
|
data.offset = response.offset
|
||||||
} while (response.offset !== undefined)
|
} while (response.offset !== undefined)
|
||||||
return returnPages.map((page) => this.createDocumentFromPage(page))
|
return returnPages.map((page) => this.createDocumentFromPage(page))
|
||||||
|
|||||||
Reference in New Issue
Block a user