@@ -521,23 +521,33 @@ export async function getFileBySlug(slug: string): Promise<SlugFile> {
521521 ) ;
522522 }
523523
524- const cacheKey = md5 ( source ) ;
525- const cacheFile = path . join ( CACHE_DIR , ` ${ cacheKey } .br` ) ;
526- const assetsCacheDir = path . join ( CACHE_DIR , cacheKey ) ;
524+ let cacheKey : string | null = null ;
525+ let cacheFile : string | null = null ;
526+ let assetsCacheDir : string | null = null ;
527527 const outdir = path . join ( root , 'public' , 'mdx-images' ) ;
528528 await mkdir ( outdir , { recursive : true } ) ;
529529
530- try {
531- const [ cached , _ ] = await Promise . all ( [
532- readCacheFile < SlugFile > ( cacheFile ) ,
533- cp ( assetsCacheDir , outdir , { recursive : true } ) ,
534- ] ) ;
535- return cached ;
536- } catch ( err ) {
537- if ( err . code !== 'ENOENT' && err . code !== 'ABORT_ERR' && err . code !== 'Z_BUF_ERROR' ) {
538- // If cache is corrupted, ignore and proceed
539- // eslint-disable-next-line no-console
540- console . warn ( `Failed to read MDX cache: ${ cacheFile } ` , err ) ;
530+ if ( process . env . CI ) {
531+ cacheKey = md5 ( source ) ;
532+ cacheFile = path . join ( CACHE_DIR , `${ cacheKey } .br` ) ;
533+ assetsCacheDir = path . join ( CACHE_DIR , cacheKey ) ;
534+
535+ try {
536+ const [ cached , _ ] = await Promise . all ( [
537+ readCacheFile < SlugFile > ( cacheFile ) ,
538+ cp ( assetsCacheDir , outdir , { recursive : true } ) ,
539+ ] ) ;
540+ return cached ;
541+ } catch ( err ) {
542+ if (
543+ err . code !== 'ENOENT' &&
544+ err . code !== 'ABORT_ERR' &&
545+ err . code !== 'Z_BUF_ERROR'
546+ ) {
547+ // If cache is corrupted, ignore and proceed
548+ // eslint-disable-next-line no-console
549+ console . warn ( `Failed to read MDX cache: ${ cacheFile } ` , err ) ;
550+ }
541551 }
542552 }
543553
@@ -636,7 +646,7 @@ export async function getFileBySlug(slug: string): Promise<SlugFile> {
636646 } ;
637647 // Set the `outdir` to a public location for this bundle.
638648 // this where this images will be copied
639- options . outdir = assetsCacheDir ;
649+ options . outdir = assetsCacheDir || outdir ;
640650
641651 // Set write to true so that esbuild will output the files.
642652 options . write = true ;
@@ -666,11 +676,13 @@ export async function getFileBySlug(slug: string): Promise<SlugFile> {
666676 } ,
667677 } ;
668678
669- await cp ( assetsCacheDir , outdir , { recursive : true } ) ;
670- writeCacheFile ( cacheFile , JSON . stringify ( resultObj ) ) . catch ( e => {
671- // eslint-disable-next-line no-console
672- console . warn ( `Failed to write MDX cache: ${ cacheFile } ` , e ) ;
673- } ) ;
679+ if ( assetsCacheDir && cacheFile ) {
680+ await cp ( assetsCacheDir , outdir , { recursive : true } ) ;
681+ writeCacheFile ( cacheFile , JSON . stringify ( resultObj ) ) . catch ( e => {
682+ // eslint-disable-next-line no-console
683+ console . warn ( `Failed to write MDX cache: ${ cacheFile } ` , e ) ;
684+ } ) ;
685+ }
674686
675687 return resultObj ;
676688}
0 commit comments