epd
Version:
Enhanced peer dependency resolution for npm, yarn, and pnpm
53 lines • 2 kB
JavaScript
import { writeFile, readFile } from 'fs/promises';
export async function autoFixPackageJson(issues) {
try {
const content = await readFile('package.json', 'utf-8');
const packageJson = JSON.parse(content);
let modified = false;
// Fix duplicate dependencies
if (issues.includes('duplicates')) {
const deps = packageJson.dependencies || {};
const devDeps = packageJson.devDependencies || {};
for (const dep of Object.keys(deps)) {
if (devDeps[dep]) {
delete devDeps[dep];
modified = true;
console.log(`🔧 Removed duplicate ${dep} from devDependencies`);
}
}
}
// Sort dependencies alphabetically
if (issues.includes('sort')) {
if (packageJson.dependencies) {
const sorted = Object.keys(packageJson.dependencies)
.sort()
.reduce((acc, key) => {
acc[key] = packageJson.dependencies[key];
return acc;
}, {});
packageJson.dependencies = sorted;
modified = true;
}
if (packageJson.devDependencies) {
const sorted = Object.keys(packageJson.devDependencies)
.sort()
.reduce((acc, key) => {
acc[key] = packageJson.devDependencies[key];
return acc;
}, {});
packageJson.devDependencies = sorted;
modified = true;
}
}
if (modified) {
await writeFile('package.json', JSON.stringify(packageJson, null, 2));
console.log('✅ Auto-fixed package.json');
}
return modified;
}
catch (error) {
console.error('❌ Auto-fix failed:', error);
return false;
}
}
//# sourceMappingURL=auto-fix.js.map