@nossbigg/peerdeps-manager
Version:
A simple CLI utility to install (and uninstall) your `node` peer dependencies to your dev dependencies.
45 lines (37 loc) • 1.36 kB
JavaScript
const get = require("lodash.get");
const { loadPeerdepsManagerConfig } = require("../common");
const {
execNpmUninstall,
execYarnRemove,
getPackageManagerKey,
} = require("../packageManagerUtils");
const { getDevDependenciesState } = require("./getDevDependenciesState");
const { doGitRestorePackageJson } = require("./doGitRestorePackageJson");
const handlerMap = { npm: execNpmUninstall, yarn: execYarnRemove };
const doUnsetAction = async () => {
const pdmConfig = loadPeerdepsManagerConfig();
const packageList = get(pdmConfig, "unset.packages", []);
const isEmptyPackageList = packageList.length === 0;
if (isEmptyPackageList) {
console.log("no packages defined in unset.packages. nothing to do.");
return;
}
const { presentPackages } = getDevDependenciesState(packageList);
const isNoPackagesToUninstall = presentPackages.length === 0;
if (isNoPackagesToUninstall) {
console.log("no packages to uninstall. nothing to do.");
return;
}
const packageManagerKey = getPackageManagerKey();
const uninstallHandler = handlerMap[packageManagerKey];
await uninstallHandler(presentPackages);
const isDoGitRestorePackageJson = get(
pdmConfig,
"unset.doGitRestorePackageJson",
true
);
if (isDoGitRestorePackageJson) {
await doGitRestorePackageJson();
}
};
exports.doUnsetAction = doUnsetAction;