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
JavaScript
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 };
}
}