File tree Expand file tree Collapse file tree 1 file changed +29
-4
lines changed
packages/web-platform/web-mcp-server/src Expand file tree Collapse file tree 1 file changed +29
-4
lines changed Original file line number Diff line number Diff line change 1- import puppeteer from 'puppeteer' ;
1+ import puppeteer , { type Browser , type Page } from 'puppeteer' ;
22
3- const browser = await puppeteer . launch ( { headless : true } ) ;
4- export async function createPuppeteerPage ( url : string ) {
5- const page = await browser . newPage ( ) ;
3+ let browser : Browser | null = null ;
4+
5+ export async function getBrowser ( ) : Promise < Browser > {
6+ if ( browser ) {
7+ return browser ;
8+ }
9+ try {
10+ browser = await puppeteer . launch ( {
11+ headless : true ,
12+ args : [ '--no-sandbox' , '--disable-setuid-sandbox' ] ,
13+ } ) ;
14+ return browser ;
15+ } catch ( error ) {
16+ console . error ( 'Failed to launch Puppeteer browser:' , error ) ;
17+ throw error ; // Re-throw the error to be caught by the caller
18+ }
19+ }
20+
21+ export async function closeBrowser ( ) : Promise < void > {
22+ if ( browser ) {
23+ await browser . close ( ) ;
24+ browser = null ;
25+ }
26+ }
27+
28+ export async function createPuppeteerPage ( url : string ) : Promise < Page > {
29+ const currentBrowser = await getBrowser ( ) ;
30+ const page = await currentBrowser . newPage ( ) ;
631 try {
732 await page . goto ( url , {
833 waitUntil : 'networkidle0' ,
You can’t perform that action at this time.
0 commit comments