npm-check-extras
Version:
CLI app to check for outdated and unused dependencies, and run update/delete action over selected ones
32 lines (31 loc) • 1.12 kB
JavaScript
import { readFile, writeFile } from 'node:fs/promises';
import * as R from 'ramda';
import { sortPackageJson } from 'sort-package-json';
import { preJson } from '../helpers.js';
const readPackageJson = async () => {
const packageJsonFile = await readFile('package.json', 'utf8');
return JSON.parse(packageJsonFile);
};
const updateDependenciesEntries = (packageJsonContent, updatables) => {
const spec = R.map(value => {
return R.mergeDeepLeft(R.defaultTo({}, value));
}, updatables);
return R.evolve(spec, packageJsonContent);
};
const updatePacksonEntries = async (updatables) => {
const currentPackson = await readPackageJson();
const spec = R.map(value => {
return R.mergeDeepLeft(R.defaultTo({}, value), {});
}, updatables);
const newContent = R.mergeDeepLeft(spec, currentPackson);
let result = false;
try {
await writeFile('package.json', preJson(sortPackageJson(newContent)));
result = true;
}
catch {
result = false;
}
return result;
};
export { readPackageJson, updatePacksonEntries, updateDependenciesEntries };