node-semvers
Version:
Utilities for managing versions of node including looking up codenames
62 lines • 2.61 kB
JavaScript
// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy
;
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; }