File tree 3 files changed +4
-24
lines changed
3 files changed +4
-24
lines changed Original file line number Diff line number Diff line change 1
1
import { createStorage } from 'unstorage'
2
2
import lruCacheDriver from 'unstorage/drivers/lru-cache'
3
- import type { Browser } from 'playwright-core'
4
3
import type { OgImageOptions } from '../../types'
5
4
6
5
export const prerenderOptionsCache = import . meta. prerender
7
6
? createStorage < OgImageOptions > ( {
8
7
driver : lruCacheDriver ( { max : 1000 } ) ,
9
8
} )
10
9
: undefined
11
-
12
- export const prerenderChromiumContext : { browser ?: Browser } = { browser : undefined }
Original file line number Diff line number Diff line change 1
1
import type { Browser } from 'playwright-core'
2
2
import type { Renderer } from '../../../types'
3
- import { prerenderChromiumContext } from '../../cache/prerender'
4
3
import { createScreenshot } from './screenshot'
5
4
import { createBrowser } from '#nuxt-og-image/bindings/chromium'
6
5
@@ -11,16 +10,8 @@ const ChromiumRenderer: Renderer = {
11
10
return { } // TODO
12
11
} ,
13
12
async createImage ( ctx ) {
14
- let browser : Browser = ( import . meta . prerender ? prerenderChromiumContext . browser : null ) || await createBrowser ( )
13
+ const browser : Browser = await createBrowser ( )
15
14
// check if browser is open
16
- // lets us re-use the browser
17
- if ( import . meta. prerender ) {
18
- prerenderChromiumContext . browser = browser
19
- // if not, open it
20
- if ( ! browser . isConnected ( ) )
21
- browser = await createBrowser ( )
22
- }
23
-
24
15
if ( ! browser . isConnected ( ) ) {
25
16
return createError ( {
26
17
statusCode : 400 ,
@@ -29,9 +20,8 @@ const ChromiumRenderer: Renderer = {
29
20
}
30
21
31
22
// @todo return placeholder image on failure
32
- return createScreenshot ( ctx , browser ! ) . finally ( async ( ) => {
33
- if ( ! import . meta. prerender ) // closed by
34
- await browser ! . close ( )
23
+ return await createScreenshot ( ctx , browser ! ) . finally ( async ( ) => {
24
+ await browser ! . close ( )
35
25
} )
36
26
} ,
37
27
}
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ import { createRouter as createRadixRouter, toRouteMatcher } from 'radix3'
4
4
import { defu } from 'defu'
5
5
import type { NitroRouteRules } from 'nitropack'
6
6
import { extractAndNormaliseOgImageOptions } from '../../core/options/extract'
7
- import { prerenderChromiumContext , prerenderOptionsCache } from '../../core/cache/prerender'
7
+ import { prerenderOptionsCache } from '../../core/cache/prerender'
8
8
import { isInternalRoute } from '../../utils.pure'
9
9
import { resolvePathCacheKey } from '../utils'
10
10
import { useRuntimeConfig } from '#imports'
@@ -38,11 +38,4 @@ export default defineNitroPlugin(async (nitro) => {
38
38
const key = resolvePathCacheKey ( ctx . event )
39
39
await prerenderOptionsCache ! . setItem ( key , options )
40
40
} )
41
- nitro . hooks . hook ( 'close' , async ( ) => {
42
- // clean up the browser
43
- if ( prerenderChromiumContext . browser ) {
44
- await prerenderChromiumContext . browser . close ( )
45
- prerenderChromiumContext . browser = undefined
46
- }
47
- } )
48
41
} )
You can’t perform that action at this time.
0 commit comments