eol-check
Version:
CLI tool to check End-of-Life (EOL) status of Node.js, package managers, operating systems, dependencies, and databases. Supports HTML reports and GitHub Actions.
49 lines (48 loc) • 1.7 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.scanEnvironment = void 0;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const serviceScanner_1 = require("./serviceScanner");
const scanEnvironment = () => {
const nodeVersion = process.version;
let packageManager = 'npm'; // Default
let os = 'Unknown';
// Detect Package Manager
if (fs_1.default.existsSync(path_1.default.join(process.cwd(), 'yarn.lock'))) {
packageManager = 'yarn';
}
else if (fs_1.default.existsSync(path_1.default.join(process.cwd(), 'pnpm-lock.yaml'))) {
packageManager = 'pnpm';
}
// Detect OS (Linux specific for now, as per spec)
try {
if (fs_1.default.existsSync('/etc/os-release')) {
const osRelease = fs_1.default.readFileSync('/etc/os-release', 'utf-8');
const lines = osRelease.split('\n');
const nameLine = lines.find((line) => line.startsWith('PRETTY_NAME='));
if (nameLine) {
os = nameLine.split('=')[1].replace(/"/g, '');
}
}
else {
os = process.platform;
}
}
catch (error) {
console.warn('Failed to detect OS details', error);
os = process.platform;
}
// Scan local services
const services = (0, serviceScanner_1.scanLocalServices)();
return {
nodeVersion,
packageManager,
os,
services,
};
};
exports.scanEnvironment = scanEnvironment;