UNPKG

dce-dev-wizard

Version:

Wizard for managing development apps at Harvard DCE.

31 lines (28 loc) 1.23 kB
// Import shared types import NodeVersionArray from '../types/NodeVersionArray'; /** * 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 = async (): Promise<number | null> => { const nodeVersionsResponse = await fetch('https://nodejs.org/download/release/index.json'); const nodeVersions: NodeVersionArray = await nodeVersionsResponse.json(); let currentEvenMajorLTSVersion: number | null = 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; }; export default getCurrentEvenLTSNodeVersion;