mirror of
https://git.mirrors.martin98.com/https://github.com/mendableai/firecrawl
synced 2025-08-14 04:15:53 +08:00
Nick: fixed v0 backwards compatibility node sdk types
This commit is contained in:
parent
88239d7211
commit
38ed845b93
@ -1,4 +1,4 @@
|
|||||||
import FirecrawlApp, { CrawlResponseV0, FirecrawlDocumentV0, JobStatusResponseV0, ScrapeResponseV0, SearchResponseV0 } from '../../index';
|
import FirecrawlApp, { CrawlResponseV0, CrawlStatusResponse, CrawlStatusResponseV0, FirecrawlDocumentV0, ScrapeResponseV0, SearchResponseV0 } from '../../index';
|
||||||
import { v4 as uuidv4 } from 'uuid';
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
import dotenv from 'dotenv';
|
import dotenv from 'dotenv';
|
||||||
import { describe, test, expect } from '@jest/globals';
|
import { describe, test, expect } from '@jest/globals';
|
||||||
@ -79,8 +79,9 @@ describe('FirecrawlApp E2E Tests', () => {
|
|||||||
|
|
||||||
test.concurrent('should return successful response for crawl and wait for completion', async () => {
|
test.concurrent('should return successful response for crawl and wait for completion', async () => {
|
||||||
const app = new FirecrawlApp({ apiKey: TEST_API_KEY, apiUrl: API_URL, version: "v0" });
|
const app = new FirecrawlApp({ apiKey: TEST_API_KEY, apiUrl: API_URL, version: "v0" });
|
||||||
const response = await app.crawlUrl('https://roastmywebsite.ai', { crawlerOptions: { excludes: ['blog/*'] } }, true, 30) as CrawlResponseV0;
|
const response = await app.crawlUrl('https://roastmywebsite.ai', { crawlerOptions: { excludes: ['blog/*'] } }, true, 10) as FirecrawlDocumentV0[];
|
||||||
expect(response).not.toBeNull();
|
expect(response).not.toBeNull();
|
||||||
|
console.log({response});
|
||||||
expect(response[0].content).toContain("_Roast_");
|
expect(response[0].content).toContain("_Roast_");
|
||||||
}, 60000); // 60 seconds timeout
|
}, 60000); // 60 seconds timeout
|
||||||
|
|
||||||
@ -96,7 +97,7 @@ describe('FirecrawlApp E2E Tests', () => {
|
|||||||
|
|
||||||
test.concurrent('should check crawl status', async () => {
|
test.concurrent('should check crawl status', async () => {
|
||||||
const app = new FirecrawlApp({ apiKey: TEST_API_KEY, apiUrl: API_URL, version: "v0" });
|
const app = new FirecrawlApp({ apiKey: TEST_API_KEY, apiUrl: API_URL, version: "v0" });
|
||||||
const response: any = await app.crawlUrl('https://roastmywebsite.ai', { crawlerOptions: { excludes: ['blog/*'] } }, false) as JobStatusResponseV0;
|
const response: any = await app.crawlUrl('https://roastmywebsite.ai', { crawlerOptions: { excludes: ['blog/*'] } }, false) as CrawlResponseV0;
|
||||||
expect(response).not.toBeNull();
|
expect(response).not.toBeNull();
|
||||||
expect(response.jobId).toBeDefined();
|
expect(response.jobId).toBeDefined();
|
||||||
|
|
||||||
@ -105,10 +106,10 @@ describe('FirecrawlApp E2E Tests', () => {
|
|||||||
let checks = 0;
|
let checks = 0;
|
||||||
|
|
||||||
while (statusResponse.status === 'active' && checks < maxChecks) {
|
while (statusResponse.status === 'active' && checks < maxChecks) {
|
||||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
await new Promise(resolve => setTimeout(resolve, 5000));
|
||||||
expect(statusResponse.partial_data).not.toBeNull();
|
expect(statusResponse.partial_data).not.toBeNull();
|
||||||
expect(statusResponse.current).toBeGreaterThanOrEqual(1);
|
// expect(statusResponse.current).toBeGreaterThanOrEqual(1);
|
||||||
statusResponse = await app.checkCrawlStatus(response.jobId) as CrawlResponseV0;
|
statusResponse = await app.checkCrawlStatus(response.jobId) as CrawlStatusResponseV0;
|
||||||
checks++;
|
checks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +118,8 @@ describe('FirecrawlApp E2E Tests', () => {
|
|||||||
expect(statusResponse.status).toBe('completed');
|
expect(statusResponse.status).toBe('completed');
|
||||||
expect(statusResponse.total).toEqual(statusResponse.current);
|
expect(statusResponse.total).toEqual(statusResponse.current);
|
||||||
expect(statusResponse.current_step).not.toBeNull();
|
expect(statusResponse.current_step).not.toBeNull();
|
||||||
|
expect(statusResponse.current).toBeGreaterThanOrEqual(1);
|
||||||
|
|
||||||
expect(statusResponse?.data?.length).toBeGreaterThan(0);
|
expect(statusResponse?.data?.length).toBeGreaterThan(0);
|
||||||
}, 35000); // 35 seconds timeout
|
}, 35000); // 35 seconds timeout
|
||||||
|
|
||||||
|
@ -260,6 +260,7 @@ export interface CrawlStatusResponseV0 {
|
|||||||
error?: string;
|
error?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parameters for mapping operations.
|
* Parameters for mapping operations.
|
||||||
* Defines options for mapping URLs during a crawl.
|
* Defines options for mapping URLs during a crawl.
|
||||||
@ -452,7 +453,7 @@ export default class FirecrawlApp {
|
|||||||
waitUntilDone: boolean = true,
|
waitUntilDone: boolean = true,
|
||||||
pollInterval: number = 2,
|
pollInterval: number = 2,
|
||||||
idempotencyKey?: string
|
idempotencyKey?: string
|
||||||
): Promise<CrawlResponse | CrawlResponseV0 | CrawlStatusResponse | CrawlStatusResponseV0> {
|
): Promise<CrawlResponse | CrawlResponseV0 | CrawlStatusResponse | CrawlStatusResponseV0 | FirecrawlDocumentV0[]> {
|
||||||
const headers = this.prepareHeaders(idempotencyKey);
|
const headers = this.prepareHeaders(idempotencyKey);
|
||||||
let jsonData: any = { url, ...params };
|
let jsonData: any = { url, ...params };
|
||||||
try {
|
try {
|
||||||
@ -639,7 +640,7 @@ export default class FirecrawlApp {
|
|||||||
headers: AxiosRequestHeaders,
|
headers: AxiosRequestHeaders,
|
||||||
checkInterval: number,
|
checkInterval: number,
|
||||||
checkUrl?: string
|
checkUrl?: string
|
||||||
): Promise<CrawlStatusResponse | CrawlStatusResponseV0> {
|
): Promise<CrawlStatusResponse | FirecrawlDocumentV0[]> {
|
||||||
let apiUrl: string = '';
|
let apiUrl: string = '';
|
||||||
while (true) {
|
while (true) {
|
||||||
if (this.version == 'v1') {
|
if (this.version == 'v1') {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user