File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed 
packages/build/src/extensions Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change 1+ import  {  BuildExtension  }  from  "@trigger.dev/core/v3/build" ; 
2+ import  {  syncEnvVars  }  from  "./core.js" ; 
3+ 
4+ export  function  vercelSyncEnvVars ( ) : BuildExtension  { 
5+   const  sync  =  syncEnvVars ( async  ( ctx )  =>  { 
6+     const  environmentMap  =  { 
7+       prod : "production" , 
8+       staging : "preview" , 
9+       dev : "development" , 
10+     }  as  const ; 
11+ 
12+     const  vercelEnvironment  = 
13+       environmentMap [ ctx . environment  as  keyof  typeof  environmentMap ] ; 
14+ 
15+     const  vercelApiUrl  = 
16+       `https://api.vercel.com/v8/projects/${ process . env . VERCEL_PROJECT_ID }  ; 
17+ 
18+     const  response  =  await  fetch ( vercelApiUrl ,  { 
19+       headers : { 
20+         Authorization : `Bearer ${ process . env . VERCEL_ACCESS_TOKEN }  , 
21+       } , 
22+     } ) ; 
23+ 
24+     if  ( ! response . ok )  { 
25+       throw  new  Error ( `HTTP error! status: ${ response . status }  ) ; 
26+     } 
27+ 
28+     const  data  =  await  response . json ( ) ; 
29+ 
30+     const  filteredEnvs  =  data . envs 
31+       . filter ( 
32+         ( env : {  type : string ;  value : string ;  target : string [ ]  } )  => 
33+           env . type  ===  "encrypted"  &&  env . value  && 
34+           env . target . includes ( vercelEnvironment ) , 
35+       ) 
36+       . map ( ( env : {  key : string ;  value : string  } )  =>  ( { 
37+         name : env . key , 
38+         value : env . value , 
39+       } ) ) ; 
40+ 
41+     return  filteredEnvs ; 
42+   } ) ; 
43+ 
44+   return  { 
45+     name : "SyncVercelEnvVarsExtension" , 
46+     async  onBuildComplete ( context ,  manifest )  { 
47+       await  sync . onBuildComplete ?.( context ,  manifest ) ; 
48+     } , 
49+   } ; 
50+ } 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments