UNPKG

get-node

Version:

Download a specific version of Node.js

36 lines (24 loc) 755 B
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;