@@ -69,56 +69,64 @@ const options = [ '--disable-background-networking',
6969export  default  class  SaveUrl  { 
7070
7171    public  static  async  save ( event )  { 
72-         const  {  queryStringParameters : { 
73-             url, 
74-             html, 
75-             timeout =  2000 , 
76-             height =  800 , 
77-             width =  400 , 
78-             killEvent =  "kill" 
79-         }  =  { }  as  any  }  =  event ; 
80- 
81-         const  file  =  await  TempFileService . getTempFile ( "a.png" ) ; 
82- 
83-         console . log ( `Received URL: ${ url }  ` ) ; 
84- 
85-         const  browser  =  await  puppeteer . launch ( { 
86-             executablePath, 
87-             headless : true , 
88-             userDataDir : "/tmp" , 
89-             dumpio : true , 
90-             args : options 
91-         } ) ; 
92- 
93-         console . log ( `Puppeteer Launched.` ) ; 
94- 
95-         let  page  =  await  browser . newPage ( ) ; 
96- 
97-         console . log ( `New Page created.` ) ; 
98-         page . setUserAgent ( userAgent ) ; 
99- 
100-         console . log ( `User agent set.` ) ; 
101-         page . setViewport ( {  width,  height } ) ; 
102-         console . log ( `Screen Size set.` ) ; 
103-         await  page . goto ( url ) ; 
104-         console . log ( `Url loaded.` ) ; 
105- 
106-         await  sleep ( timeout ) ; 
107-         console . log ( `Taking screenshot.` ) ; 
108- 
109-         const  screen  =  await  page . screenshot ( )  as  Buffer ; 
110-         console . log ( `Sending screenshot.` ) ; 
111-         const  body  =  screen . toString ( "base64" ) ; 
112-         await  browser . close ( ) ; 
113- 
114-         return  { 
115-             statusCode : 200 , 
116-             headers : { 
117-                 "content-type" : "image/png" 
118-             } , 
119-             body, 
120-             isBase64Encoded : true 
121-         } ; 
72+         try  { 
73+             const  {  queryStringParameters : { 
74+                 url, 
75+                 html, 
76+                 timeout =  2000 , 
77+                 height =  800 , 
78+                 width =  400 , 
79+                 killEvent =  "kill" 
80+             }  =  { }  as  any  }  =  event ; 
81+ 
82+             const  file  =  await  TempFileService . getTempFile ( "a.png" ) ; 
83+ 
84+             console . log ( `Received URL: ${ url }  ` ) ; 
85+ 
86+             const  browser  =  await  puppeteer . launch ( { 
87+                 executablePath, 
88+                 headless : true , 
89+                 userDataDir : "/tmp" , 
90+                 dumpio : true , 
91+                 args : options 
92+             } ) ; 
93+ 
94+             console . log ( `Puppeteer Launched.` ) ; 
95+ 
96+             let  page  =  await  browser . newPage ( ) ; 
97+ 
98+             console . log ( `New Page created.` ) ; 
99+             page . setUserAgent ( userAgent ) ; 
100+ 
101+             console . log ( `User agent set.` ) ; 
102+             page . setViewport ( {  width,  height } ) ; 
103+             console . log ( `Screen Size set.` ) ; 
104+             await  page . goto ( url ) ; 
105+             console . log ( `Url loaded.` ) ; 
106+ 
107+             await  sleep ( timeout ) ; 
108+             console . log ( `Taking screenshot.` ) ; 
109+ 
110+             const  screen  =  await  page . screenshot ( )  as  Buffer ; 
111+             console . log ( `Sending screenshot.` ) ; 
112+             const  body  =  screen . toString ( "base64" ) ; 
113+             await  browser . close ( ) ; 
114+ 
115+             return  { 
116+                 statusCode : 200 , 
117+                 headers : { 
118+                     "content-type" : "image/png" 
119+                 } , 
120+                 body, 
121+                 isBase64Encoded : true 
122+             } ; 
123+         }  catch  ( e )  { 
124+             console . error ( e ) ; 
125+             return  { 
126+                 statusCode : 500 , 
127+                 body : e . stack  ??  e . toString ( ) 
128+             } 
129+         } 
122130
123131    } 
124132
0 commit comments