nve
Version:
Run any command on specific Node.js versions
63 lines (49 loc) • 771 B
JavaScript
export const cleanupProcesses=async(versions,continueOpt,state)=>{
await Promise.all(
versions.map(({childProcess,version},index)=>
cleanupProcess({
childProcess,
version,
versions,
state,
continueOpt,
index
})
)
)
};
const cleanupProcess=async({
childProcess,
version,
versions,
state,
continueOpt,
index
})=>{
try{
await childProcess
}catch(error){
terminateProcesses({error,versions,version,state,continueOpt,index})
}
};
const terminateProcesses=({
error,
versions,
version,
state,
continueOpt,
index
})=>{
if(state.failedError!==undefined||continueOpt){
return
}
Object.assign(state,{
failedError:error,
failedVersion:version,
failedIndex:index
});
versions.forEach(terminateProcess)
};
const terminateProcess=({childProcess})=>{
childProcess.kill()
};