Merge pull request #974 from mendableai/fix-sdk/next-in-when-502

[bug/JS-SDK]Added check for object and trycatch as workaround for 502s
This commit is contained in:
Nicolas
2024-12-26 12:53:55 -03:00
committed by GitHub
2 changed files with 39 additions and 35 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@mendable/firecrawl-js", "name": "@mendable/firecrawl-js",
"version": "1.10.0", "version": "1.10.1",
"description": "JavaScript SDK for Firecrawl API", "description": "JavaScript SDK for Firecrawl API",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",
+7 -3
View File
@@ -470,7 +470,7 @@ export default class FirecrawlApp {
let statusData = response.data let statusData = response.data
if ("data" in statusData) { if ("data" in statusData) {
let data = statusData.data; let data = statusData.data;
while ('next' in statusData) { while (typeof statusData === 'object' && 'next' in statusData) {
statusData = (await this.getRequest(statusData.next, headers)).data; statusData = (await this.getRequest(statusData.next, headers)).data;
data = data.concat(statusData.data); data = data.concat(statusData.data);
} }
@@ -704,7 +704,7 @@ export default class FirecrawlApp {
let statusData = response.data let statusData = response.data
if ("data" in statusData) { if ("data" in statusData) {
let data = statusData.data; let data = statusData.data;
while ('next' in statusData) { while (typeof statusData === 'object' && 'next' in statusData) {
statusData = (await this.getRequest(statusData.next, headers)).data; statusData = (await this.getRequest(statusData.next, headers)).data;
data = data.concat(statusData.data); data = data.concat(statusData.data);
} }
@@ -863,6 +863,7 @@ export default class FirecrawlApp {
headers: AxiosRequestHeaders, headers: AxiosRequestHeaders,
checkInterval: number checkInterval: number
): Promise<CrawlStatusResponse | ErrorResponse> { ): Promise<CrawlStatusResponse | ErrorResponse> {
try {
while (true) { while (true) {
let statusResponse: AxiosResponse = await this.getRequest( let statusResponse: AxiosResponse = await this.getRequest(
`${this.apiUrl}/v1/crawl/${id}`, `${this.apiUrl}/v1/crawl/${id}`,
@@ -873,7 +874,7 @@ export default class FirecrawlApp {
if (statusData.status === "completed") { if (statusData.status === "completed") {
if ("data" in statusData) { if ("data" in statusData) {
let data = statusData.data; let data = statusData.data;
while ('next' in statusData) { while (typeof statusData === 'object' && 'next' in statusData) {
statusResponse = await this.getRequest(statusData.next, headers); statusResponse = await this.getRequest(statusData.next, headers);
statusData = statusResponse.data; statusData = statusResponse.data;
data = data.concat(statusData.data); data = data.concat(statusData.data);
@@ -900,6 +901,9 @@ export default class FirecrawlApp {
this.handleError(statusResponse, "check crawl status"); this.handleError(statusResponse, "check crawl status");
} }
} }
} catch (error: any) {
throw new FirecrawlError(error, 500);
}
} }
/** /**