UNPKG

node-exec-path

Version:
55 lines 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return satisfiesSemverSync; } }); var _envpathkey = /*#__PURE__*/ _interop_require_default(require("env-path-key")); var _fs = /*#__PURE__*/ _interop_require_default(require("fs")); var _module = /*#__PURE__*/ _interop_require_default(require("module")); var _path = /*#__PURE__*/ _interop_require_default(require("path")); var _semver = /*#__PURE__*/ _interop_require_default(require("semver")); var _url = /*#__PURE__*/ _interop_require_default(require("url")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE); var pathDelimiter = _path.default.delimiter ? _path.default.delimiter : isWindows ? ';' : ':'; var NODE = isWindows ? 'node.exe' : 'node'; var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require; var existsSync = function(test) { try { (_fs.default.accessSync || _fs.default.statSync)(test); return true; } catch (_) { return false; } }; var __dirname = _path.default.dirname(typeof __filename === 'undefined' ? _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()) : __filename); // Worker MUST always load from dist/cjs/ for old Node compatibility (works from both cjs and esm) var processVersion = _path.default.join(__dirname, '..', 'cjs', 'workers', 'processVersion.js'); var functionExec = null; // break dependencies function satisfiesSemverSync(versionString) { var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; if (!functionExec) functionExec = _require('function-exec-sync'); // break dependencies var env = options.env || process.env; var pathKey = (0, _envpathkey.default)(env); var envPaths = env[pathKey].split(pathDelimiter); for(var i = 0; i < envPaths.length; i++){ var envPath = envPaths[i]; var execPath = _path.default.join(envPath, NODE); if (!existsSync(execPath)) continue; var version = functionExec({ execPath: execPath }, processVersion); if (_semver.default.satisfies(version, versionString)) return execPath; } return null; } /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }