UNPKG

nvexeca

Version:
41 lines (24 loc) 769 B
import{mkdir,rename,rm,writeFile}from"node:fs/promises"; import{pathExists}from"path-exists"; export const writeBinaries=async(srcPaths,distBinDir)=>{ if(await pathExists(distBinDir)){ return } const tmpBinDir=getTmpBinDir(distBinDir); await mkdir(tmpBinDir,{recursive:true}); await Promise.all(srcPaths.map((srcPath)=>writeBinary(srcPath,tmpBinDir))); try{ await rename(tmpBinDir,distBinDir) }catch{ await rm(tmpBinDir,{force:true,recursive:true}) } }; const getTmpBinDir=(distBinDir)=>{ const randomId=String(Math.random()).replace(".",""); return`${distBinDir}-${randomId}` }; const writeBinary=async({filename,content},tmpBinDir)=>{ const tmpPath=`${tmpBinDir}/${filename}`; await writeFile(tmpPath,content,{mode:DIST_MODE}) }; const DIST_MODE=493;