UNPKG

nodesync-cli

Version:

A smart CLI tool to auto-detect, install, and manage the right Node.js version for your project.

31 lines (22 loc) 1.03 kB
import fs from 'fs'; import path from 'path'; const DEFAULT_LTS_VERSION = '18.18.2'; // Safe LTS fallback export async function suggestVersion(projectRoot = process.cwd()) { const pkgPath = path.join(projectRoot, 'package.json'); if (!fs.existsSync(pkgPath)) { console.warn('⚠️ No package.json found. Defaulting to Node.js LTS.'); return { source: 'default', version: DEFAULT_LTS_VERSION }; } try { const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8')); const deps = Object.keys(pkg.dependencies || {}); const devDeps = Object.keys(pkg.devDependencies || {}); const allPackages = [...deps, ...devDeps]; // In future, check known Node compat per package here console.log(`📊 Found ${allPackages.length} dependencies. Defaulting to safe LTS.`); return { source: 'suggested', version: DEFAULT_LTS_VERSION }; } catch (err) { console.warn('⚠️ Could not parse package.json. Falling back to LTS.'); return { source: 'default', version: DEFAULT_LTS_VERSION }; } }