hypershield
Version:
Middleware suite for high-performance and resilient APIs
62 lines • 2.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const child_process_1 = require("child_process");
const fs_1 = __importDefault(require("fs"));
function checkOutdatedDependencies() {
try {
console.log('Checking for outdated dependencies...');
const output = (0, child_process_1.execSync)('npm outdated --json', { encoding: 'utf-8' });
const outdated = JSON.parse(output);
if (Object.keys(outdated).length > 0) {
console.warn('Outdated dependencies found:', outdated);
return false;
}
return true;
}
catch (error) {
console.error('Failed to check dependencies:', error);
return false;
}
}
function checkVulnerabilities() {
try {
console.log('Checking for vulnerabilities...');
(0, child_process_1.execSync)('npm audit', { stdio: 'inherit' });
return true;
}
catch (error) {
console.error('Security vulnerabilities found');
return false;
}
}
function validatePeerDependencies() {
const pkg = JSON.parse(fs_1.default.readFileSync('package.json', 'utf-8'));
const nodeModules = fs_1.default.readdirSync('node_modules');
console.log('Validating peer dependencies...');
const dependencies = Object.assign(Object.assign({}, pkg.dependencies), pkg.devDependencies);
const missingDeps = Object.keys(dependencies).filter(dep => !nodeModules.includes(dep));
if (missingDeps.length > 0) {
console.error('Missing dependencies:', missingDeps);
return false;
}
return true;
}
function main() {
const checks = [
checkOutdatedDependencies(),
checkVulnerabilities(),
validatePeerDependencies()
];
if (checks.every(Boolean)) {
console.log('All dependency checks passed');
}
else {
console.error('Some dependency checks failed');
process.exit(1);
}
}
main();
//# sourceMappingURL=check-dependencies.js.map