UNPKG

node-semvers

Version:

Utilities for managing versions of node including looking up codenames

62 lines 2.61 kB
// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return parseExpression; } }); var _isNaNts = /*#__PURE__*/ _interop_require_default(require("../lib/isNaN.js")); var _isLatestFnts = /*#__PURE__*/ _interop_require_default(require("./isLatestFn.js")); var _isLTSFnts = /*#__PURE__*/ _interop_require_default(require("./isLTSFn.js")); var _schedulesLatestts = /*#__PURE__*/ _interop_require_default(require("./schedulesLatest.js")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function parseExpression(expression, now) { if (expression[0] === 'v' && !(0, _isNaNts.default)(+expression.substr(1, 1))) expression = expression.substr(1); if (expression.substr(0, 4) === 'lts/') expression = expression.substr(4) === '*' ? 'lts' : expression.substr(4); if (expression === 'stable') expression = 'lts'; if (typeof expression === 'number') return { major: expression }; if (~expression.indexOf('.')) { var parts = expression.split('.'); if (parts.length === 1) return (0, _isNaNts.default)(+parts[0]) ? null : { major: +parts[0] }; if (parts.length === 2) return (0, _isNaNts.default)(+parts[0]) && (0, _isNaNts.default)(+parts[1]) ? null : { major: +parts[0], minor: +parts[1] }; return (0, _isNaNts.default)(+parts[0]) && (0, _isNaNts.default)(+parts[1]) && (0, _isNaNts.default)(+parts[2]) ? null : { major: +parts[0], minor: +parts[1], patch: +parts[2] }; } if (!(0, _isNaNts.default)(+expression)) return { major: +expression }; if (expression === 'lts') { var lts = (0, _schedulesLatestts.default)(this.schedules, (0, _isLTSFnts.default)(now)); return lts ? { name: lts.name } : null; } if (expression === 'latest') { var latest = (0, _schedulesLatestts.default)(this.schedules, (0, _isLatestFnts.default)(now)); return latest ? { name: latest.name } : null; } return { codename: expression.toLowerCase() }; } /* 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; }