UNPKG

dce-dev-wizard

Version:

Wizard for managing development apps at Harvard DCE.

55 lines 2.45 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); /** * Get the current LTS Node version from the Node.js website. * @author Gabe Abrams * @returns major version of Node.js (e.g. 22) or null if not found */ const getCurrentEvenLTSNodeVersion = () => __awaiter(void 0, void 0, void 0, function* () { // Get node versions let nodeVersions = []; let retries = 3; while (retries > 0) { try { const nodeVersionsResponse = yield fetch('https://nodejs.org/download/release/index.json'); nodeVersions = yield nodeVersionsResponse.json(); break; } catch (error) { retries -= 1; if (retries === 0) { throw error; } } } if (nodeVersions.length === 0) { throw new Error('Unable to fetch Node.js versions from the Node.js website.'); } let currentEvenMajorLTSVersion = null; nodeVersions.forEach((version) => { const versionParts = version.version.split('.'); const majorVersion = Number.parseInt(versionParts[0].replace('v', ''), 10); const isEven = (majorVersion % 2 === 0); const isLTS = (version.lts !== false); if (isLTS && isEven) { // Check if this is the first even major LTS version // or if it's greater than the current one if (!currentEvenMajorLTSVersion || majorVersion > currentEvenMajorLTSVersion) { // Update the current even major LTS version currentEvenMajorLTSVersion = majorVersion; } } }); return currentEvenMajorLTSVersion; }); exports.default = getCurrentEvenLTSNodeVersion; //# sourceMappingURL=getCurrentEvenLTSNodeVersion.js.map