@@ -523,9 +523,15 @@ export async function getFileBySlug(slug: string): Promise<SlugFile> {
523523
524524 const cacheKey = md5 ( source ) ;
525525 const cacheFile = path . join ( CACHE_DIR , `${ cacheKey } .br` ) ;
526+ const assetsCacheDir = path . join ( CACHE_DIR , cacheKey ) ;
527+ const outdir = path . join ( root , 'public' , 'mdx-images' ) ;
528+ await mkdir ( outdir , { recursive : true } ) ;
526529
527530 try {
528- const cached = await readCacheFile < SlugFile > ( cacheFile ) ;
531+ const [ cached , _ ] = await Promise . all ( [
532+ readCacheFile < SlugFile > ( cacheFile ) ,
533+ cp ( assetsCacheDir , outdir , { recursive : true } ) ,
534+ ] ) ;
529535 return cached ;
530536 } catch ( err ) {
531537 if ( err . code !== 'ENOENT' && err . code !== 'ABORT_ERR' && err . code !== 'Z_BUF_ERROR' ) {
@@ -547,8 +553,6 @@ export async function getFileBySlug(slug: string): Promise<SlugFile> {
547553
548554 // cwd is how mdx-bundler knows how to resolve relative paths
549555 const cwd = path . dirname ( sourcePath ) ;
550- const assetsCacheDir = path . join ( CACHE_DIR , cacheKey ) ;
551- const outdir = path . join ( root , 'public' , 'mdx-images' ) ;
552556
553557 const result = await bundleMDX < Platform > ( {
554558 source,
@@ -662,12 +666,7 @@ export async function getFileBySlug(slug: string): Promise<SlugFile> {
662666 } ,
663667 } ;
664668
665- await mkdir ( outdir , { recursive : true } ) ;
666- await cp ( assetsCacheDir , outdir , {
667- recursive : true ,
668- errorOnExist : false ,
669- force : true ,
670- } ) ;
669+ await cp ( assetsCacheDir , outdir , { recursive : true } ) ;
671670 writeCacheFile ( cacheFile , JSON . stringify ( resultObj ) ) . catch ( e => {
672671 // eslint-disable-next-line no-console
673672 console . warn ( `Failed to write MDX cache: ${ cacheFile } ` , e ) ;
0 commit comments