@reliverse/rse-sdk
Version:
@reliverse/rse-sdk allows you to create new plugins for @reliverse/rse CLI, interact with reliverse.org, and even extend your own CLI functionality (you may also try @reliverse/dler-sdk for this case).
20 lines (19 loc) • 785 B
JavaScript
import path from "@reliverse/pathkit";
import fs from "@reliverse/relifso";
import { exec } from "node:child_process";
export async function uninstallDependencies(cwd, dependencies) {
if (dependencies.length === 0) {
return;
}
const packageManager = await fs.pathExists(path.join(cwd, "yarn.lock")) ? "yarn" : await fs.pathExists(path.join(cwd, "pnpm-lock.yaml")) ? "pnpm" : "npm";
const uninstallCmd = packageManager === "npm" ? `npm uninstall ${dependencies.join(" ")}` : packageManager === "yarn" ? `yarn remove ${dependencies.join(" ")}` : `pnpm remove ${dependencies.join(" ")}`;
await new Promise((resolve, reject) => {
exec(uninstallCmd, { cwd }, (error) => {
if (error) {
reject(error);
} else {
resolve();
}
});
});
}