File tree Expand file tree Collapse file tree 1 file changed +27
-2
lines changed
Expand file tree Collapse file tree 1 file changed +27
-2
lines changed Original file line number Diff line number Diff line change 11const puppeteer = require ( 'puppeteer' ) ;
22const config = require ( "../config" ) ;
3- const { enabled } = require ( '../app' ) ;
3+ const fs = require ( 'fs' )
44
55class PrerenderService {
66 url
7+ directory
78 constructor ( url = 'https://example.org' ) {
89 this . url = url
910 }
@@ -12,9 +13,33 @@ class PrerenderService {
1213 const browser = await puppeteer . launch ( )
1314 const page = await browser . newPage ( )
1415 await page . goto ( this . url )
15- page . setJavaScriptEnabled ( true )
16+ this . addPageToCache ( page , browser )
1617 return page . content ( )
1718 }
19+
20+ /**
21+ * Create a slug
22+ * @param {String } title
23+ * @returns String
24+ */
25+ createTitleSlug ( title = '' ) {
26+ return title . split ( ' ' ) . join ( '_' ) . toLowerCase ( )
27+ }
28+
29+ /**
30+ * Add the fetched rendered page to cache
31+ * @param {Array } page
32+ */
33+ async addPageToCache ( page , browser ) {
34+ const directory = new URL ( this . url ) . hostname
35+ fs . mkdir ( `./output/${ directory } ` , ( err ) => {
36+ console . warn ( err ) ;
37+ } )
38+ const titleSlug = this . createTitleSlug ( await page . title ( ) )
39+ fs . writeFileSync ( `./output/${ directory } /${ titleSlug } .html` , ( await page . content ( ) ) , { encoding : "utf-8" } )
40+
41+ await browser . close ( )
42+ }
1843}
1944
2045module . exports = PrerenderService
You can’t perform that action at this time.
0 commit comments