UNPKG

pkg-fetch

Version:

Github Releases page of this project contains base binaries, used by `pkg` to create executables. `pkg-fetch` npm package downloads base binaries or compiles them from source.

114 lines (92 loc) 3.21 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.knownArchs = exports.targetArchs = exports.hostArch = exports.knownPlatforms = exports.hostPlatform = exports.hostAbi = undefined; exports.abiToNodeRange = abiToNodeRange; exports.isValidNodeRange = isValidNodeRange; exports.toFancyPlatform = toFancyPlatform; exports.toFancyArch = toFancyArch; var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _child_process = require('child_process'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function getHostAbi() { return 'm' + process.versions.modules; } function abiToNodeRange(abi) { if (/^m?14/.test(abi)) return 'node0.12'; if (/^m?46/.test(abi)) return 'node4'; if (/^m?47/.test(abi)) return 'node5'; if (/^m?48/.test(abi)) return 'node6'; if (/^m?51/.test(abi)) return 'node7'; if (/^m?57/.test(abi)) return 'node8'; return abi; } function isValidNodeRange(nodeRange) { if (nodeRange === 'latest') return true; if (!/^node/.test(nodeRange)) return false; return true; } function toFancyPlatform(platform) { if (platform === 'darwin') return 'macos'; if (platform === 'lin') return 'linux'; if (platform === 'mac') return 'macos'; if (platform === 'osx') return 'macos'; if (platform === 'win32') return 'win'; if (platform === 'windows') return 'win'; return platform; } function detectAlpine() { var _process = process, platform = _process.platform; if (platform !== 'linux') return false; // https://github.com/sass/node-sass/issues/1589#issuecomment-265292579 var ldd = (0, _child_process.spawnSync)('ldd', [process.execPath]).stdout.toString(); return (/\bmusl\b/.test(ldd) ); } var isAlpine = detectAlpine(); function getHostPlatform() { var _process2 = process, platform = _process2.platform; if (isAlpine) return 'alpine'; return toFancyPlatform(platform); } function getKnownPlatforms() { return ['alpine', 'freebsd', 'linux', 'macos', 'win']; } function toFancyArch(arch) { if (arch === 'ia32') return 'x86'; if (arch === 'x86_64') return 'x64'; return arch; } function getArmHostArch() { var cpu = _fs2.default.readFileSync('/proc/cpuinfo', 'utf8'); if (cpu.indexOf('vfpv3') >= 0) return 'armv7'; var name = cpu.split('model name')[1]; if (name) name = name.split(':')[1]; if (name) name = name.split('\n')[0]; if (name && name.indexOf('ARMv7') >= 0) return 'armv7'; return 'armv6'; } function getHostArch() { var _process3 = process, arch = _process3.arch; if (arch === 'arm') return getArmHostArch(); return toFancyArch(arch); } function getTargetArchs() { var arch = getHostArch(); if (arch === 'x64') return ['x64', 'x86']; return [arch]; } function getKnownArchs() { return ['x64', 'x86', 'armv6', 'armv7', 'arm64']; } var hostAbi = exports.hostAbi = getHostAbi(); var hostPlatform = exports.hostPlatform = getHostPlatform(); var knownPlatforms = exports.knownPlatforms = getKnownPlatforms(); var hostArch = exports.hostArch = getHostArch(); var targetArchs = exports.targetArchs = getTargetArchs(); var knownArchs = exports.knownArchs = getKnownArchs();