@@ -33,59 +33,72 @@ export async function GET(req: Request) {
3333 ) ;
3434 }
3535
36- logger . info ( `Starting screenshot for URL: ${ url } ` ) ;
36+ logger . info ( `[SCREENSHOT] Starting screenshot for URL: ${ url } ` ) ;
3737
3838 try {
3939 // Get browser instance
40+ logger . info ( `[SCREENSHOT] Attempting to get browser instance` ) ;
4041 const browser = await getBrowser ( ) ;
41- logger . info ( ' Browser instance acquired' ) ;
42+ logger . info ( `[SCREENSHOT] Browser instance acquired successfully` ) ;
4243
4344 // Create a new page
45+ logger . info ( `[SCREENSHOT] Creating new page` ) ;
4446 page = await browser . newPage ( ) ;
45- logger . info ( ' New page created' ) ;
47+ logger . info ( `[SCREENSHOT] New page created successfully` ) ;
4648
4749 // Set viewport
50+ logger . info ( `[SCREENSHOT] Setting viewport` ) ;
4851 await page . setViewport ( { width : 1600 , height : 900 } ) ;
49- logger . info ( ' Viewport set to 1600x900' ) ;
52+ logger . info ( `[SCREENSHOT] Viewport set successfully` ) ;
5053
5154 // Navigate to the URL
52- logger . info ( `Navigating to URL: ${ url } ` ) ;
55+ logger . info ( `[SCREENSHOT] Navigating to URL: ${ url } ` ) ;
5356 await page . goto ( url , {
54- waitUntil : 'domcontentloaded ' ,
55- timeout : 60000 ,
57+ waitUntil : 'networkidle2 ' ,
58+ timeout : 90000 ,
5659 } ) ;
57- logger . info ( ' Page loaded (DOMContentLoaded)' ) ;
60+ logger . info ( `[SCREENSHOT] Page loaded successfully` ) ;
5861
5962 // Extra wait for rendering
60- await new Promise ( ( resolve ) => setTimeout ( resolve , 2000 ) ) ;
61- logger . info ( 'Waited 2 seconds for rendering' ) ;
63+ logger . info ( `[SCREENSHOT] Waiting additional time for rendering` ) ;
64+ await new Promise ( ( resolve ) => setTimeout ( resolve , 5000 ) ) ;
65+ logger . info ( `[SCREENSHOT] Additional wait completed` ) ;
6266
6367 // Take screenshot
68+ logger . info ( `[SCREENSHOT] Taking screenshot` ) ;
6469 const screenshot = await page . screenshot ( {
6570 type : 'png' ,
6671 fullPage : true ,
6772 } ) ;
68- logger . info ( ' Screenshot captured' ) ;
73+ logger . info ( `[SCREENSHOT] Screenshot captured successfully, size: ${ screenshot . length } bytes` ) ;
6974
7075 // Clean up
71- if ( page ) await page . close ( ) ;
72- logger . info ( 'Page closed' ) ;
76+ if ( page ) {
77+ logger . info ( `[SCREENSHOT] Closing page` ) ;
78+ await page . close ( ) ;
79+ logger . info ( `[SCREENSHOT] Page closed successfully` ) ;
80+ }
7381
82+ logger . info ( `[SCREENSHOT] Returning screenshot response` ) ;
7483 return new Response ( screenshot , {
7584 headers : {
7685 'Content-Type' : 'image/png' ,
77- 'Cache-Control' : 's-maxage=3600' ,
86+ 'Cache-Control' : 'no-cache, no-store, must-revalidate' ,
87+ 'Pragma' : 'no-cache' ,
88+ 'Expires' : '0'
7889 } ,
7990 } ) ;
8091 } catch ( error : any ) {
81- logger . error ( 'Screenshot error:' , error ) ;
92+ logger . error ( `[SCREENSHOT] Error capturing screenshot: ${ error . message } ` , error ) ;
93+ logger . error ( `[SCREENSHOT] Error stack: ${ error . stack } ` ) ;
8294
8395 if ( page ) {
8496 try {
97+ logger . info ( `[SCREENSHOT] Attempting to close page after error` ) ;
8598 await page . close ( ) ;
86- logger . info ( 'Closed page after error' ) ;
99+ logger . info ( `[SCREENSHOT] Successfully closed page after error` ) ;
87100 } catch ( closeError ) {
88- logger . error ( ' Error closing page:' , closeError ) ;
101+ logger . error ( `[SCREENSHOT] Error closing page: ${ closeError . message } ` ) ;
89102 }
90103 }
91104
@@ -96,12 +109,13 @@ export async function GET(req: Request) {
96109 ) {
97110 try {
98111 if ( browserInstance ) {
112+ logger . warn ( `[SCREENSHOT] Resetting browser instance due to protocol error` ) ;
99113 await browserInstance . close ( ) ;
100- logger . warn ( 'Browser instance was closed due to protocol error' ) ;
101114 browserInstance = null ;
115+ logger . warn ( `[SCREENSHOT] Browser instance reset successfully` ) ;
102116 }
103117 } catch ( closeBrowserError ) {
104- logger . error ( ' Error closing browser:' , closeBrowserError ) ;
118+ logger . error ( `[SCREENSHOT] Error closing browser: ${ closeBrowserError . message } ` ) ;
105119 }
106120 }
107121
0 commit comments