get-node
Version:
Download a specific version of Node.js
36 lines (24 loc) • 755 B
JavaScript
import{once}from"node:events";
import{createWriteStream}from"node:fs";
import fetchNodeWebsite from"fetch-node-website";
import{checkChecksum}from"./checksum.js";
export const fetchNodeUrl=async(version,filepath,fetchOpts)=>{
const response=await fetchNodeWebsite(`v${version}/${filepath}`,fetchOpts);
const checksumError=checkChecksum({
version,
filepath,
response,
fetchOpts
});
return{response,checksumError}
};
export const promiseOrFetchError=async(promise,response)=>{
await Promise.race([promise,throwOnFetchError(response)])
};
const throwOnFetchError=async(response)=>{
const[error]=await once(response,"error");
throw error
};
export const writeNodeBinary=(tmpFile)=>
createWriteStream(tmpFile,{mode:NODE_MODE});
const NODE_MODE=493;