From bcc37d510ab30484ba6be76fa55451f4fc1e1c0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ad=C3=A1mek?= Date: Wed, 20 Jul 2022 21:46:54 +0200 Subject: [PATCH] fix: add `headless` option to `BrowserCrawlerOptions` It's just a shortcut for `launchContext: { launchOptions: { headless } }`. --- .../src/internals/browser-crawler.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/browser-crawler/src/internals/browser-crawler.ts b/packages/browser-crawler/src/internals/browser-crawler.ts index 5bb711e4dd2d..3e4990aceeb2 100644 --- a/packages/browser-crawler/src/internals/browser-crawler.ts +++ b/packages/browser-crawler/src/internals/browser-crawler.ts @@ -248,6 +248,12 @@ export interface BrowserCrawlerOptions< * This can only be used when `useSessionPool` is set to `true`. */ persistCookiesPerSession?: boolean; + + /** + * Whether to run browser in headless mode. Defaults to `true`. + * Can be also set via {@link Configuration}. + */ + headless?: boolean; } /** @@ -306,7 +312,7 @@ export abstract class BrowserCrawler< */ browserPool: BrowserPool; - launchContext?: BrowserLaunchContext; + launchContext: BrowserLaunchContext; protected userProvidedRequestHandler!: BrowserCrawlerHandleRequest; protected navigationTimeoutMillis: number; @@ -340,7 +346,7 @@ export abstract class BrowserCrawler< requestHandlerTimeoutSecs = 60, persistCookiesPerSession, proxyConfiguration, - launchContext, + launchContext = {}, browserPoolOptions, preNavigationHooks = [], postNavigationHooks = [], @@ -352,6 +358,7 @@ export abstract class BrowserCrawler< failedRequestHandler, handleFailedRequestFunction, + headless, ...basicCrawlerOptions } = options; @@ -394,6 +401,11 @@ export abstract class BrowserCrawler< this.preNavigationHooks = preNavigationHooks; this.postNavigationHooks = postNavigationHooks; + if (headless != null) { + this.launchContext.launchOptions ??= {} as LaunchOptions; + (this.launchContext.launchOptions as Dictionary).headless = headless; + } + if (this.useSessionPool) { this.persistCookiesPerSession = persistCookiesPerSession !== undefined ? persistCookiesPerSession : true; } else {