UNPKG

node-semvers

Version:

Utilities for managing versions of node including looking up codenames

80 lines 3.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); var _exit = /*#__PURE__*/ _interop_require_default(require("exit")); var _getoptscompat = /*#__PURE__*/ _interop_require_default(require("getopts-compat")); var _isarray = /*#__PURE__*/ _interop_require_default(require("isarray")); var _indexts = /*#__PURE__*/ _interop_require_default(require("./index.js")); var _isNaNts = /*#__PURE__*/ _interop_require_default(require("./lib/isNaN.js")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var ERROR_CODE = 11; var _default = function(argv) { var stringify = function stringify(value) { return typeof value === 'string' ? value : JSON.stringify(value); }; var options = (0, _getoptscompat.default)(argv.slice(1), { alias: { path: 'p', range: 'r', now: 'n' }, stopEarly: true }); if (typeof options.now !== 'undefined') options.now = new Date((0, _isNaNts.default)(+options.now) ? Date.parse(options.now) : +options.now); // define.option('-p, --path [path]', 'path within version including raw for unprocessed version', 'version'); // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'patch'); // define.option('-n, --now [date]', 'use a specific time as a Date.parse'); if (options.help) { console.log(''); console.log('Example call:'); console.log(' $ nv [version string]'); console.log(''); console.log('Version Strings:'); console.log('Any command that calls for a version can be provided any of the'); console.log('following "version-ish" identifies:'); console.log(''); console.log('- x.y.z A specific SemVer tuple'); console.log('- x.y Major and minor version number'); console.log('- x Just a major version number'); console.log('- lts The most recent LTS (long-term support) node version'); console.log('- lts/<name> The latest in a named LTS set. (argon, boron, etc.)'); console.log('- lts/* Same as just "lts"'); console.log('- latest The most recent (non-LTS) version'); console.log('- stable Backwards-compatible alias for "lts"'); console.log('- [expression] Engine and semver module expression like "10.1.x || >=12.0.0"'); return; } var args = argv.slice(0, 1).concat(options._); if (args.length < 1) { console.log('Missing version string. Example usage: nv [version string]. Use nv --help for information on version strings'); return (0, _exit.default)(ERROR_CODE); } _indexts.default.load(options, function(err, semvers) { if (err) { console.log(err.message); return (0, _exit.default)(ERROR_CODE); } var version = semvers.resolve(args[0], options); if (!version || (0, _isarray.default)(version) && !version.length) { console.log("Unrecognized: ".concat(args[0])); return (0, _exit.default)(ERROR_CODE); } console.log('versions:'); if ((0, _isarray.default)(version)) { for(var index = 0; index < version.length; index++)console.log(stringify(version[index])); } else console.log(stringify(version)); (0, _exit.default)(0); }); }; /* 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; }