UNPKG

vike

Version:

The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.

38 lines (37 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.assertVersion = assertVersion; exports.isVersionOrAbove = isVersionOrAbove; const assert_js_1 = require("./assert.js"); function assertVersion(dependencyName, versionActual, versionExpected) { (0, assert_js_1.assert)(versionActual); (0, assert_js_1.assert)(versionExpected); (0, assert_js_1.assertUsage)(isVersionOrAbove(versionActual, versionExpected), `${dependencyName} ${versionActual} isn't supported, use ${dependencyName} >= ${versionExpected} instead.`); } function isVersionOrAbove(versionActual, versionExpected) { const p1 = parseVersion(versionActual); const p2 = parseVersion(versionExpected); // major if (p1[0] !== p2[0]) return p1[0] > p2[0]; // minor if (p1[1] !== p2[1]) return p1[1] > p2[1]; // patch if (p1[2] !== p2[2]) return p1[2] > p2[2]; // Same version return true; } function parseVersion(version) { // Remove pre-release tag version = version.split('-')[0]; let partsStr = version.split('.'); // Git seems to be using a fourth number: https://github.com/git/git/tree/master/Documentation/RelNotes partsStr = partsStr.slice(0, 3); // major.minor.patch (0, assert_js_1.assert)(partsStr.length === 3); (0, assert_js_1.assert)(partsStr.every((s) => s.length > 0)); const parts = partsStr.map((s) => parseInt(s, 10)); return parts; }